-
[C Language] 9. 증가 연산자와 감소 연산자 - C 언어CSE/C Language 2015. 6. 13. 10:07
1. 증감 연산자
++i: 전치 증가 연산(i = i + 1 과 같다)
i++: 후치 증가 연산
--j: 전치 감소 연산(j = j - 1 과 같다)
j--: 후치 감소 연산
위의 설명으로는 부족하므로 예제를 통해 설명을 보자.
ex: i = 7, j = 5 일 때
1. a = i++ * 3;
2. b = ++i * 3;
3. c = i++ * 3; d = i++ * 3;
4. e = --i + j++;
1번 식에서 a = 21을 출력한다. 그러나, 그 후 i 값은 8로 적용된다. 이 것이 전치 증가 연산이다.
2번 식에서 b = 27을 출력한다. 그러고나서, i 값은 9로 적용된다. 이 것이 후치 증가 연산이다.
3번 식에서 c = 27을 출력한다. d = 30을 출력한다. c 적용 시 i 값은 9로 곱셈을 하고 난 뒤, i 를 10으로 증가시킨 게 d에 적용된다.
4번 식에서 e = 15를 출력한다. 3번 식에서 최종적으로 i는 11로 되었으나, 전치 감소 연산으로 i = 10, j는 후치 증가 연산이므로 5의 값을 통해 e = 10 + 5라는 식이 성립된다. 그 후, i = 10, j = 6이 된다.
2. 증감 연산자 예제
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667/** incdec.c** Created on: 2015. 5. 11.* Author: root*/#include <stdio.h>int main(void) {puts("No 1.");{printf("1 2 3 4 5\n");}puts("No 2.");{int one = 1, two = 2, three = 3, four = 4, five = 5;printf("%d %d %d %d %d\n", one, two, three, four, five);}puts("No 3.");{int one = 1;printf("%d ", one++);printf("%d ", one++);printf("%d ", one++);printf("%d ", one++);printf("%d ", one++);puts("");}puts("No 4.");{int i;int one = 1;for (i = 0; i < 5; i++)printf("%d ", one++);puts("");}puts("No 5.");{int i;for (i = 0; i < 5; i++) {printf("%c ", '1' + i);}puts("");}puts("No 6.");{int i;for (i = 1; i <= 5; i++)printf("%d ", i);}return 0;}cs 모두 1 2 3 4 5를 출력한다.
* Programming in C 서적을 참고하여 작성하였습니다
'CSE > C Language' 카테고리의 다른 글
[C Language] 12. 조건 연산자 - C 언어 (0) 2015.06.13 [C Language] 11. 논리 연산자 - C 언어 (0) 2015.06.13 [C Language] 10. 관계 연산자와 상등 연산자 - C 언어 (0) 2015.06.13 [C Language] 8. 사칙 연산자와 나머지 연산자 - C 언어 (0) 2015.06.13 [C Language] 7. 대입 연산자(Assign operator) - C 언어 (0) 2015.06.13 [C Language] 6. 연산자 개요(Introduction to operator) - C 언어 (0) 2015.06.13