후배에게 질문받았다.
#include <stdio.h>
void main() {
int a = 10;
printf("a++, ++a %d %d\n", a++, ++a);
a = 10;
printf("++a, a++ %d %d\n", ++a, a++);
}
이 코드의 결과가 어떻게 출력되느냐 인데 결과는
11 12
12 10
이다.
C언어는 전통적으로 함수인자를 뒤 인자부터 넣기때문에 코드 실행은 마지막 인자부터 왼쪽으로 실행된다.
이때 후위연산자를 실행하면 ex) a++ 라고 한다면 a 의 값이 상수로 변환되어 인자에 들어가고 a = a+1 이 수행된다.
고로 a=10 이고 a++ 이면 a++ => 10 (이후 a += 1) 이 된다.
신기한 C언어 세상.
'Programming Language > C' 카테고리의 다른 글
int 와 long 의 차이점 (1) | 2017.03.13 |
---|