정보처리기사 실기C언어C - 포인터 산술과 배열난이도 3SHORT_ANSWER

정보처리기사 실기 C - 포인터 산술과 배열 기출문제 #1458

문제

다음 C 코드의 실행 결과를 쓰시오.

C
#include <stdio.h> int main() { int matrix[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; int *base = &matrix[1][1]; int *p1 = base + 1; int *p2 = base + 5; int *p3 = base - 1; printf("%d %d %d", *p1, *p2, *p3); return 0; }

정답

7 11 5

7 11 57 11 5

해설

2차원 배열 matrix는 메모리상에 연속적으로 저장됩니다: [1,2,3,4,5,6,7,8,9,10,11,12]. base는 matrix[1]1을 가리킵니다. p1 = base + 1은 다음 요소인 7을 가리킵니다. p2 = base + 5는 5칸 뒤의 요소인 11을 가리킵니다. p3 = base - 1은 이전 요소인 5를 가리킵니다. 따라서 출력은 7 11 5입니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.