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

[정보처리기사 실기] 2021년 1회 15 - 프로그래밍 [C] 포인터

쏠솔랄라 2025. 7. 15. 08:12

 

 


15 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

#include <stdio.h>
main() {
	struct insa {
    	char name[10];
        int age;
    } a[] = {"Kim", 28, "Lee", 38, "Park", 42, "Choi", 31};
    struct insa* p;
    p=a;
    p++;
    printf("%s\n", p->name);
    printf("%d\n", p->age);
}

 

 

 

더보기

Lee

38

 

 

 

 

해설

코드 실행순서 및 해석
1 #include <stdio.h>    
2 main() { 1 실행
3      struct insa { 2 insa라는 구조체를 사용한다
4           char name[10]; 3 기억장소 10개짜리 배열 생성
5           int age; 4 age라는 정수형 변수를 생성
6       } a[] = {"Kim", 28, "Lee", 38, "Park", 42, "Choi", 31}; 5 a[] 배열을 선언하고 초기값 입력
요소 개수만큼 배열 생성
7     struct insa* p; 6 insa라는 구조체를 가리키는 p라는 포인트 변수 선언
8     p=a; 7 a라는 배열을 p에 넣어라
-> a의 시작점인 a[0]의 위치가 p라는 변수에 들어감
-> p는 a[0]를 가리킴
9     p++; 8 p=p+1
a[0]에서 p를 1 증가시키면 a[1] 위치를 가리키게 됨
10     printf("%s\n", p->name); 9 p라는 포인트 변수가 가리키는 곳의
name이라는 문자열 변수를 출력하고 줄바꿈
-> 출력: Lee
11     printf("%d\n", p->age); 10 p라는 포인트 변수가 가리키는 곳의
age라는 숫자 변수를 출력하고 줄바꿈
-> 출력: 38
12 }    

 

  a[0] a[1] a[2] a[3]
name Kim Lee Park Choi
age 28 38 42 31