모두CBT

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가 출력된다. 구조체끼리의 대입은 멤버 전체를 값으로 복사한다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.