뚜당탕탕

Visual Studio Code) 04 계산 (산술 연산자, 대입 연산자) 본문

공부 기록용/C Language

Visual Studio Code) 04 계산 (산술 연산자, 대입 연산자)

뚜띠언니 2021. 1. 12. 19:07

기본서체입니다.

본고딕 R 체 입니다.

본고딕 L 체 입니다.

나눔고딕체 입니다.

본명조체 입니다.

궁서체 입니다.

 

기본서체와 본명조체가 가독성이 좋아보인다.

오늘은 본명조체로 시작해본다.


산술 연산자 Arithmetic Operator

 

printf("a / b 는  : %f \n", a / b);

 

출력 결과,

a / b 는 : 0.000000

이 출력 되었다.

 

실수형 데이터를 출력하기 위해 %f 를 사용했지만,

(정수형 변수)  (연산)  (정수형 변수)    인 경우   (정수)  로 유지된다.

그래서 정수형 값을 출력해야 하는데, 실수형 데이터를 출력하는 %f 를 사용했으니 값이 제대로 나올 수가 없다.

 

변수 b 를 정수형 int 타입이 아닌 실수형 double 타입으로 선언했다. 

 

a / b 는 : 3.333333

b / a 는 : 0.300000

로 제대로 출력된다.

 

자료형이 다른 두 변수를 연산할 때, 컴파일러는 숫자의 범위가 더 큰 자료형으로 변환시킨다. 이를 '산술 변환' 이라고 한다.

int < double 

double 이 int 에 비해 포함하는 숫자가 더 크므로, 큰 쪽으로 산술 변환이 일어난다.

 

또한, (정수형 변수) 와 (실수형 변수) 가 만나면 실수형 변수의 숫자 범위가 훨씬 넓기 때문에 무조건 실수형 변수쪽으로 변환된다.

 

반대로 (정수형 변수) 와 (실수형 변수) 와의 연산에서

정수형 값을 출력하는 %d 를 사용하면 제대로 연산이 되지 않고 오류가 발생한다.

 

 


대입 연산자 Assignment Operator

 

int a = 3; 은

int a;
a = 3;

을 합친 것과 같다.

그래서 a 값의 결과는 6 이 나온다.

 

 

대입연산자는 오른쪽에 있는 값을 왼쪽에 대입한다. 

컴파일러는 '=' 라는 기호를 기호 뒤에서부터 해석하므로, 대입도 맨 오른쪽(뒤에서부터) 이루어진다.

 

 

int a = 1;

a = a + 1;

(1) 정수형 변수 a 를 선언한다.

(2) 변수 a 에 오른쪽 값인 숫자 1 을 대입한다.

(3) '=' 오른쪽인 'a+1' 을 먼저 연산한다. 변수 a 에는 숫자 1이 대입되어있다. 그래서 'a+1' 은 1+1 과 같다.

(4) 연산 후 값은 2 이다.

(5) 오른쪽의 값인 2 를 왼쪽의 변수 a 에 대입한다.

(6) 변수 a 의 값은 2 가 된다.

 

Comments