#include <stdio.h>
struct insa {
char name[10];
int age;
struct insa* impl_a;
struct insa* impl_b;
};
int main() {
struct insa p1 = { "Kim", 28, NULL, NULL };
struct insa p2 = { "Lee", 36, NULL, NULL };
struct insa p3 = { "Park", 41, NULL, NULL };
p1.impl_a = &p2;
p2.impl_b = &p3;
printf("%s\n", p1.impl_a->name); // "Lee" 출력
printf("%d", p2.impl_b->age); // 41 출력
return 0;
}
주어진 C 언어 프로그램은 구조체와 포인터를 사용하여 데이터를 처리하는 코드입니다. 분석해보면, 구조체 insa는 이름(name), 나이(age), 그리고 insa 구조체를 가리키는 포인터 멤버들을 가지고 있습니다.
프로그램 설명:
struct insa {
char name[10];
int age;
struct insa* impl_a;
struct insa* impl_b;
};
1. 구조체 정의: insa 구조체는 name 배열(문자열 저장용), age(나이 저장용), impl_a와 impl_b라는 두 개의 insa 포인터 멤버를 포함하고 있습니다.
2. 메인 함수:
• p1, p2, p3는 각각 “Kim”, “Lee”, “Park”이라는 이름과 나이를 가지며, 각 구조체의 포인터 멤버들이 서로를 가리키도록 설정되어 있습니다.
• p1.impl_a는 p2를 가리키고, p2.impl_b는 p3를 가리킵니다.
struct insa p1 = { "Kim", 28, NULL, NULL };
struct insa p2 = { "Lee", 36, NULL, NULL };
struct insa p3 = { "Park", 41, NULL, NULL };
p1.impl_a = &p2;
p2.impl_b = &p3;
3. 출력 부분:
printf("%s\n", p1.impl_a->name); // "Lee"
printf("%d", p2.impl_b->age); // 41
• p1.impl_a->name는 p1의 impl_a가 p2를 가리키고 있으므로, p2.name, 즉 “Lee”가 출력됩니다.
• p2.impl_b->age는 p2의 impl_b가 p3를 가리키고 있으므로, p3.age, 즉 41이 출력됩니다.
실행 결과:
Lee
41
이 프로그램은 구조체 멤버와 포인터를 이용해 데이터를 접근하고 출력하는 예시입니다.
'전산 관련 시험 > 프로그래밍(C, JAVA, Python)' 카테고리의 다른 글
[C] 프로그래밍 언어(23.3 09) (1) | 2024.10.05 |
---|---|
[C] C언어 구조 이해 (0) | 2024.10.05 |
[C] 프로그래밍 언어(23.3 03) (0) | 2024.10.05 |
[JAVA] 프로그래밍 언어(23.3 01) (0) | 2024.10.05 |
[Java] 프로그래밍 문제풀이 (0) | 2024.04.14 |
댓글