문항 1
다음은 C언어 포인터 연산 코드 문제이다. 출력값을 작성하시오.
#include <stdio.h>
int main(void){
int a[]={2,4,6,8};
int *p=a+1;
int x=*p++ + *++p;
printf("%d %d", x, *(p-1));
return 0;
}
정답: 12 6
해설: 포인터 기준 주소와 실제 참조 대상을 먼저 고정해 연산하면 정확하다.
오답 포인트: 연산자 우선순위(*, ->, [], ++, 비트연산) 혼동이 오답의 핵심이다.
함정 포인트: 정수형 폭/시프트/마스킹 순서를 바꾸면 값이 달라진다.