자격증/정보처리기사 실기 - 기출문제
[정보처리기사 실기] 2021년 3회 16 - 프로그래밍 [C] 포인터
쏠솔랄라
2025. 7. 18. 07:08
16 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
int main() {
int* array[3];
int a=12, b=24, c=36;
array[0] = &a;
array[1] = &b;
array[2] = &c;
printf("%d", *array[1] + **array + 1);
}
답
더보기
37
해설
코드 | 실행순서 및 해석 | ||
1 | #include <stdio.h> | ||
2 | int main() { | ||
3 | int* array[3]; | 정수형 포인터 배열 array를 배열 3개로 생성 | |
4 | int a=12, b=24, c=36; | ||
5 | array[0] = &a; | a의 주소값을 array[0]위치에 넣어라 | |
6 | array[1] = &b; | b의 주소값을 array[1]위치에 넣어라 | |
7 | array[2] = &c; | c의 주소값을 array[2]위치에 넣어라 | |
8 | printf("%d", *array[1] + **array + 1); | *array[1]: 2000번지가 가리키는 숫자 = 24 **array: array의 주소가 가리키는 값 array배열의 값: 0500 *array: array[0]의 주소값 → 1000 **array: array[0]의 주소가 가리키는 값 → 12 =24+12+1 =37 |
|
9 | } |
0000 | ||||
… | ||||
array | 0500 | 1000 | 2000 | 3000 |
array[0] | array[1] | array[2] | ||
… | ||||
a | 1000 | 12 | ||
… | ||||
b | 2000 | 24 | ||
… | ||||
c | 3000 | 36 |