대입 연산자
변수에 값을 저장하거나 변경할 때 사용하는 '=' 연산자가 바로 대입 연산자이다.
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에 대입
'Developing > C 언어' 카테고리의 다른 글
[C언어 강의 - 08] 비트 연산자 (0) | 2014.05.07 |
---|---|
[C언어 강의 - 07] 관계, 논리 연산자 (0) | 2014.05.07 |
[C언어 강의 - 05] 산술 연산자 (0) | 2014.05.07 |
[C언어 강의 - 04] 데이터 타입 (0) | 2014.04.29 |
[C언어 강의 - 03] 표준 입출력 (함수) (0) | 2014.04.29 |