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