문제
다음 C언어 프로그램이 실행되었을 때의 결과는?
① 0 ② 4 ③ 8 ④ 12
정답
3번
해설
정답: 3. pt와 &n은 모두 n의 주소이고 *&pt는 pt(=&n)이므로 &n - *&pt = 0(포인터 차)이다. 나머지 *pt + n = 4 + 4 = 8이므로 결과는 8이 되어 ③이 정답이다.
오답 풀이
- 1번: 0은 *pt와 n을 더하지 않은 경우이다.
- 2번: 4는 *pt 또는 n 한쪽만 더한 값이다.
- 3번: (&n - *&pt) + *pt + n = 0 + 4 + 4 = 8로 정답이다.
- 4번: 12는 잘못 계산한 값이다.
보충 개념 *&pt는 pt를 그대로 의미하고 pt와 &n이 같은 주소이므로 두 포인터의 차는 0이다.