/*산술연산*/
#include <stdio.h>
int main() {
int a, b;
a = 10;
b = 3;
printf("a+b 는 : %d \n", a+b);
printf("a-b 는 : %d \n", a-b);
printf("a*b 는 : %d \n", a*b);
printf("a/b 는 : %d \n", a/b)"
printf("a %%b는 : %d \n \n", a%b);
printf("a / b는 : %f \n" a/b); //해서는 안될짓
return 0;
}
1_ 사칙연산
+ , - , x , ÷ 를의미하는데
컴퓨터에서는 x는 * 을이용해서 ' 5*2 = 10'
컴퓨터에서는 ÷는 / 을 이용해서 '4/2 = 2' 로 표현한다.
색다른 연산자로 %가있는데
10%3은 1이된다. (나머지값)
+ ,- ,* ,/ , % 5개를 모두합쳐 산술연산자라고 부름
2_대입 연산자
a =10; 과 10 = a; 는 같지않다.
실제 수학에서는 두가지는 별반 차이가없지만, C언어 컴파일러는 ' = ' 라는 기호 뒤에서 부터 해석하기때문에
a = 10은 '10을 a에 대입하라' 이지만
10 = a는 'a를 10에 대입하라'가 된다.
즉 이상한 문장이 되면서 오류가난다.
' = ' 를 대입연산자라고하는데, 왜냐하면 우측의 값을 좌측에 대입 하라는 것이기 때문이다.
3_
printf("a %% b 는 : %d \n \n", a%b);
%%는 %를 '표시'하기 위한 방법입니다. 왜냐하면 %하나로는 %d, %f와 같이 사용될 수있기 때문입니다.
/* 산술변환 */
#include <stdio.h>
int main( ) {
int a;
double b;
a = 10;
b= 3;
printf("a/b 는 : %f \n", a /b );
printf("b/a 는 : %f \n", b /a);
return 0;
}
4_산술변환
a가 int형 변수이고, b가 double 형 변수인데, double이 int에 비해서 포함하는 수가 더 크므로, 큰 쪽으로 산술변환됨.
일단 정수형변수랑 실수형 변수가 만나면 무조건 실수형 변수쪽으로 상승되는데, 이는 실수형 변수 범위가 int보다 훨씬 넓기
때문, 또한 double 형태로 산술변환되므로 결과도 double형태로 나옴.
5_
printf(" a / b는 : %d \n", a/b);
와 같이하면 오류가 생기게 됩니다. 왜냐하면 %d는 정수형 값을 출력하는 방식입니다.
[double형 변수로 산술변환되어서 실수형 변수쪽으로 상승되었는데, %d 정수형 값을 출력하라고해서 오류가 나는것임]
대입 연사자
/* 대입 연산자 */
#include <stdio.h>
int main() {
int a = 3;
a = a+ 3;
printf("a의 값은 : %d \n", a);
return 0;
}
6_변수선언
int a = 3;
이것은
int a;
a = 3;
위의 문장과 아래의 문장은 동일한 변수선언이다.
7_ 연산자 우선순위
a + 3의값을 a에 대입. 따라서 a = 6이 됨.
이때 이와깉이 계산 될 수 있는 이유는 +를 =보다 먼저 연산하기 때문입니다. 즉 a + 3을 먼저한 후, 그 값을 대입 하는 순서를 거치기 때문에 a 에 6이라는 값이 들어 갈 수있습니다. 이러한것을 연산자 우선순위 라고합니다.