문제
다음 C 코드의 실행 결과를 쓰시오.
C#include <stdio.h> int main() { int arr[] = {10, 20, 30, 40, 50}; int *p = arr + 1; printf("%d, %d\n", *(p + 2), p[-1]); return 0; }
정답
40, 10
4010
해설
p = arr + 1이므로 p는 arr[1](값 20)을 가리킨다. *(p + 2)는 arr[3] = 40이다. p[-1]은 *(p - 1) = arr[0] = 10이다.