다음 C 프로그램의 출력 결과는?
#include <stdio.h>
#include <string.h>
int main(void) {
char s[] = "COMPUTER";
char* p = s + 2;
*(p + 3) = 'X';
printf("%s\n", s);
printf("%zu\n", strlen(p));
return 0;
}정답 4번
p=s+2이므로 p는 문자열 COMPUTER의 M을 가리킨다. p+3은 s+5와 같아 *(p+3)='X'는 인덱스 5의 T를 X로 바꾼다. 배열 s는 COMPUXER가 되어 첫 줄에 이 문자열이 출력된다. p가 가리키는 부분 문자열은 MPUXER이고 끝의 널 문자를 제외하면 6글자이므로 둘째 줄은 6이다. 포인터 p의 이동과 s 자체의 시작 주소를 구분해야 한다.
콘텐츠 정보
- 자료 유형
- 공개 기출
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-09