iOS/정보처리기사

[정보처리기사] C언어 - 산술연산자(a++, ++a, a+= 등)

Chafle 2022. 5. 20. 18:49
반응형
산술연산자 종류

 

  • 이항 연산자
  • 단항 연산자
  • 대입 연산자

 


 

이항 연산자

 

항이 2개다

a + b같이 항이 2개로 구성된 연산자

종류: +  -  *  /  %

 

 

+는 덧셈 연산

-는 뺄셈 연산

*는 곱셈 연산입니다.

 

/는 우리가 아는 나눗셈과는 좀 다릅니다.

 

 

헷갈리는 / 연산자와 % 연산자를 살펴보면

 

/ 연산자: 을 나타내는 연산자

 

ex. 5/3 = 1(몫을 나타내고 나머지는 나타내지 않는다)

정수/정수 = 정수 (소수점 나타내지 않는다)

 

 

%연산자: 나머지를 나타내는 연산자

 

ex. 5%3 = 2 (몫이 1이고 나머지가 2이기 때문)

 


 

단항 연산자

 

종류: ++, --

 

a++;  -> 식을 먼저 처리하고 1을 증가시킨다 (할당 후 증가)

++a; -> 먼저 1을 증가시키고 식을 진행 시켜라 (증가 후 할당)

 

하단의 예재로 확실하게 하고 갑니다.

 


 

대입연산자

 

종류: +=  -=  *=  /=  %=

a+= 10; -> a= a+10

 

대입연산자 식이 나오면 "a는a"를 입에 붙이시는 게 편합니다

 

일단 입버릇처럼 a=a를 써주고 나머지 덧붙은 연산을 처리해 주면 됩니다.

ex. a/= 10  >-  a=a / 10;

 


 

예제로 굳히기

 

1.

3/4 =

 

 

 

답: 0

해설: 정수 나누기 정수는 정수, 몫이 0이니까 0

 

 

2.

a = 10; 

b= a++;

c=++a;

a,b,c 출력 결과는?

 

 

답: a=12, b= 10, c=12

해설

a = 10; // a에 10 할당

b= a++; // b에 a를 먼저 넣고 후에 1을 증가/ b=10, a=11

c=++a; // a에 먼저 1증가 시키고 c에 할당/ a=12, c=12

 

 

3.

a = 10;

a += 10;

a는?

 

답: 20

a=a+10 이므로 20

 

4.

#include<stdio.h>

noid main(){

int a, b;

a = 4*(1/2);

b = a++;

printf("%d",b);

}

 

 

답:0

해설

1/2 몫이 0이므로 4*(1/2) = 0 / a=0

b=a++ // a를 b에 먼저 대입하고 이후에 a를 1 증가시킨다. b=0 a=1

printf("%d",b) = b를 출력하면 0이다

 

반응형