23-3아래 C 프로그램이 출력하는 내용을 적으시오.#include &… | 2023년 정보처리기사실기 3회차 기출문제 상세 페이지
16
23-3
아래 C 프로그램이 출력하는 내용을 적으시오.
#include <stdio.h>
int main(void) {
const char *word = "DRAGON";
const char *q = word + 1;
printf("%s\n", word);
printf("%s\n", q + 2);
printf("%c\n", q[-1]);
printf("%c\n", *(q + 3));
printf("%c\n", *q - 1);
return 0;
}해설
DRAGON
GON
D
O
Q
[해설]
word는 "DRAGON"의 0번 글자를, q는 word + 1이므로 1번 글자 'R'을 가리킨다. 인덱스는 D=0, R=1, A=2, G=3, O=4, N=5다.
- %s와 word: 처음부터 널 문자까지 → DRAGON
- %s와 q + 2: 1+2=3번 칸부터 → GON
- q[-1]: 1−1=0번 문자 → D
- *(q + 3): 1+3=4번 문자 → O
- *q - 1: 역참조가 먼저라 'R'(82)에서 1을 뺀 81 → Q
포인터 기준이 word가 아니라 q라는 점, 그리고 *(q + 3)은 주소를 옮긴 뒤 읽고 *q - 1은 읽은 문자 코드를 계산한다는 차이가 핵심이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.