티스토리 뷰
예제 1. 연결리스트
#include <stdio.h>
struct abc { // 구조체 정의
int data;
struct abc *next; // 자기 참조 구조체
};
int main() {
struct abc x;
struct abc y;
struct abc z;
x.data = 10;
y.data = 20;
z.data = 30;
x.next = &y;
y.next = &z;
z.next = NULL;
struct abc *p;
for (p = &x; p; p=p->next){
printf("%d\n", p->data);
}
printf("구조체 y 삭제 후 \n");
x.next = y.next;
y.next = NULL;
for (p = &x; p; p=p->next){
printf("%d\n", p->data);
}
return 0;
}
✔ for문의 초기식/조건식/증감식에 구조체 포인터 변수를 사용할 수 있다.
예제 2. typedef 예약어
#include <stdio.h>
int main() {
struct man {
int age;
char name[10];
struct man *next;
};
typedef struct man Man;
Man a = {8, "짱구"};
Man b = {6, "유리"};
Man c = {7, "철수"};
Man d = {7, "맹구"};
a.next = &b;
b.next = &c;
c.next = &d;
d.next = NULL;
Man *p;
for (p = &a; p; p = p->next)
printf("나이는 %d, 이름은 %s \n", p->age, p->name);
return 0;
}
✔ typedef 예약어를 사용해 구조체 뿐만아니라 열거형, 공용체의 별칭도 만들 수 있다.
✔ 선언과 동시에 typedef 예약어를 사용해 별칭을 만들 수 있으며, 이 경우 익명 구조체를 만들 수 있다.
'BackEnd > C' 카테고리의 다른 글
[30일차] C언어 스터디 끝 ✨ (0) | 2021.03.14 |
---|---|
[28일차] 숙제 - 구조체 예제 (0) | 2021.03.12 |
[27일차] 숙제 - 코드업 1402 /1409 _동적메모리 (0) | 2021.03.11 |
[26일차] 숙제 - 코드업 1581_이중포인터 (0) | 2021.03.10 |
[25일차] 숙제 - 코드업 1460 / 1511_포인터배열 (0) | 2021.03.09 |
댓글