자격증/정보처리기사 실기 - 기출문제

[정보처리기사 실기] 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);
}

 

 

 

 

 

 

해설

코드 실행순서 및 해석
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