25-3아래 C 프로그램의 실행 결과를 적으시오.#include <… | 2025년 정보처리기사실기 3회차 기출문제 상세 페이지
11
25-3
아래 C 프로그램의 실행 결과를 적으시오.
#include <stdio.h>
struct Card {
int hop;
const char *word;
};
int main(void) {
struct Card deck[] = {{3, "LAMP"}, {1, "SNOW"}, {1, "KITE"}, {2, "RAIN"}};
struct Card *c = deck + 2;
printf("%s", c->word + c->hop * 2);
return 0;
}해설
TE
[해설]
c는 deck + 2, 즉 세 번째 원소 {1, "KITE"}를 가리킨다.
- c->hop * 2 = 1 × 2 = 2
- c->word + 2는 "KITE"의 인덱스 2('T') 위치를 가리키는 포인터
- %s는 그 위치부터 널 문자 전까지 출력한다.
따라서 TE가 출력된다. 포인터에 정수를 더하면 그 자료형 크기만큼 주소가 이동하며, char 포인터는 한 글자씩 이동한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.