본문 바로가기

Developing/C 언어

[C언어 강의 - 06] 대입, 증가/감소 연산자

대입 연산자

 

변수에 값을 저장하거나 변경할 때 사용하는 '=' 연산자가 바로 대입 연산자이다.

a = 7 ;    // 이런 식으로 a 변수에 정수 7를 대입할 수도 있고

a = b = c = 7 ;    // 이런 식으로 한번에 변수 a, b, c 에 정수 7를 대입할 수도 있다.

 

대입 연산자의 종류에는 위와 같이 일반적인 형태도 있지만 '복합 대입 연산자'라는 것도 존재하는데, 이것은 산술 연산자와 대입 연산자를 합친 형태이다.

a = a + 7 ;  // 현재 a의 값에 7을 더한 값을 a에 저장하라는 식인데, 이것을 복합 대입 연산자로 나타내면 아래와 같다.

a += 7 ;     // 이와 같이 복합 대입 연산자로 간단하게 나타낼 수 있다.

 

대입 연산자의 종류를 표로 나타내면 다음과 같다.

 

연산자 

설명 

사용 예 

=

   우측의 값을 좌측에 대입 

   a = 7 

+=

   좌측 값과 우측 값을 더하여 좌측에 대입

   a += 7    // a=a+7 

-=

   좌측 값에 우측 값을 빼서 좌측에 대입 

   a -= 7    // a=a-7 

*=

   좌측 값과 우측 값을 곱하여 좌측에 대입 

   a *= 7    // a=a*7 

/=

   좌측 값에 우측 값을 나누어 좌측에 대입 

   a /= 7    // a=a/7 

%=

   좌측 값에 우측 값을 나눈 나머지를 좌측에 대입 

   a %= 7   // a=a%7 

 

이를 활용한 프로그램은 다음과 같다.

 

 

 

 

 

 

 

증가/감소 연산자

연산자 

설명 

사용 예 

++ 

값을 1 증가 

a++, ++a 

-- 

값을 1 감소 

a--, --a 

 

여기까지 이해했다면 다음 3가지 식이 같은 의미를 갖게 된다는 것을 알 수 있다.

1. a++ ;

2. a+=1 ;

3. a = a+1 ;

 

마찬가지로 다음 3가지 식 또한 같은 의미를 갖는다.

1. a-- ;

2. a-=1 ;

3. a = a - 1 ;

 

얼핏 보면 쉽지만, 증감 연산자의 핵심은 바로 연산자의 위치에 존재한다. 위치에 따라 '선처리 후증가' 방식과 '선증가 후처리' 방식으로 나뉘게 된다.

int a = 5 ;

printf ("%d", ++a) ;

위의 문장과 같이 '++', '--' 연산자를 변수 이름 앞에 두는 것을 '선증가' 라고 하는데, 식에서 a를 사용하기 전에 a의 값을 1 증가시킨다.

결국 a의 값은 6이 되고 출력 또한 6이 출력된다.

 

int a = 5 ;

printf ("%d", a++) ;

반면 위의 문장과 같이 '++', '--' 연산자를 변수 이름 뒤에 두는 것을 '후증가' 라고 하는데, 식에서 a를 사용하고 나중에 a의 값을 1 증가시킨다.

결국 a의 값인 5를 먼저 출력하고, 다음에 a의 값을 1 증가시켜 6이 된다.

 

감소 연산자 또한 마찬가지로 이해하면 된다. 이를 활용하여 프로그램을 짜면 다음과 같다.

 

07 행 : a의 값인 10을 x에 대입하고, a의 값을 증가시켜 11이 됨

10 행 : b의 값을 증가시켜 11이 되고, b의 값인 11을 x에 대입

13 행 : c의 값인 10을 x에 대입하고, c의 값을 감소시켜 9가 됨

16 행 : d의 값을 감소시켜 9가 되고, d의 값인 9를 x에 대입