다음 C 프로그램에서 밑줄 친 코드의 실행 결과와 동일한 결과를 출력하는 코드로 옳은 것만을 모두 고르면?
#include <stdio.h>
int main()
{
int ary[5] = {10, 11, 12, 13, 14};
int *ap;
ap = ary;
printf("%d", ary[1]);
return 0;
}
ㄱ. printf("%d", ary + 1);
ㄴ. printf("%d", *ap + 1);
ㄷ. printf("%d", *ary + 1);
ㄹ. printf("%d", *ap++);정답 2번
제시 코드에서 ap는 ary의 첫 원소를 가리키고 ary[1]은 11이다. ㄴ의 *ap + 1은 10 + 1 = 11, ㄷ의 *ary + 1도 10 + 1 = 11을 출력한다. ㄱ은 값이 아니라 주소를 잘못된 형식 지정자로 출력하고, ㄹ의 *ap++는 연산자 우선순위에 따라 *(ap++)로 평가되어 현재 값 10을 출력한 뒤 포인터를 증가시킨다. 따라서 ㄴ, ㄷ인 ②가 맞다.
콘텐츠 정보
- 자료 유형
- 공개 기출
- 검수 상태
- 자동 검사 완료
- 해설 작성·검수
- 정처LAB 자동 검사
- 최종 검수
- 2026-08-21