25-2아래 C 프로그램이 출력하는 내용을 적으시오.#include &… | 2025년 정보처리기사실기 2회차 기출문제 상세 페이지
12
25-2
아래 C 프로그램이 출력하는 내용을 적으시오.
#include <stdio.h>
struct pt {
int r;
int c;
};
int main(void) {
struct pt grid[] = {{7, 1}, {4, 9}, {2, 6}, {8, 3}};
struct pt *cur = grid + 1;
struct pt **pp = &cur;
(*pp)[1] = (*pp)[-1];
(*pp)++;
(**pp).c += grid[3].r;
printf("%d, %d", grid[2].r, grid[2].c);
return 0;
}해설
7, 9
[해설]
cur는 grid[1]을 가리키고, pp는 cur의 주소를 담으므로 *pp는 곧 cur다.
- (*pp)[1] = (*pp)[-1]: cur[1]은 grid[2], cur[-1]은 grid[0] → grid[2]에 {7, 1}이 통째로 복사
- (*pp)++: cur가 grid[2]로 한 칸 이동
- (**pp).c += grid[3].r: grid[2].c = 1 + 8 = 9
grid[2]는 {7, 9}가 되어 7, 9가 출력된다. 구조체끼리의 대입은 멤버 전체를 값으로 복사한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.