## 学点 C 语言(26): 数据类型 - 结构的更多可能 转

涂孟超

1. 包含数组的结构:
``````#include <stdio.h>

int main(void)
{
struct Rec {
int x[3];
int y;
} r1;

r1.x[0] = 11; r1.x[1] = 22; r1.x[2] = 33;
r1.y = 99;

printf("%d,%d,%d,%d", r1.x[0], r1.x[1], r1.x[2], r1.y);

getchar();
return 0;
}

``````

2. 结构中的结构:
``````#include <stdio.h>

int main(void)
{
struct Rec1 {
int x,y,z;
};

struct Rec2 {
int ID;
struct Rec1 num;
} R;

R.ID = 9;
R.num.x = 1;
R.num.y = 2;
R.num.z = 3;

printf("%d,%d,%d,%d", R.ID, R.num.x, R.num.y, R.num.z);

getchar();
return 0;
}

``````
``````#include <stdio.h>

int main(void)
{
struct Rec {
int ID;
struct {
int x;
int y;
int z;
} num;
} R;

R.ID = 9;
R.num.x = 1;
R.num.y = 2;
R.num.z = 3;

printf("%d,%d,%d,%d", R.ID, R.num.x, R.num.y, R.num.z);

getchar();
return 0;
}

``````

3. 链表(结构中的指针):
``````#include <stdio.h>

int main(void)
{
struct Rec {
int x;
int y;
struct Rec *next;  /* 结构中的指针, 这是建立链表的基础 */
} *p=NULL, *pFirst=NULL, *pPrec=NULL;

/* 建立链表 */
int i;
for (i = 0; i < 10; i++) {
p = (struct Rec *)malloc(sizeof(struct Rec));
p->x = i;
p->y = i*i;
p->next = NULL;

if (!pFirst) {
pFirst = p;
pPrec = p;
} else {
pPrec->next = p;
pPrec = p;
}
}

/* 遍历链表 */
p = pFirst;
while (p) {
printf("%d, %d\n", p->x, p->y);
p = p->next;
}

/* 释放链表 */
p = pFirst;
while (p) {
pPrec = p;
p = p->next;
free(pPrec);
}

getchar();
return 0;
}

``````

### 涂孟超

ddatsh
2011/06/28
313
0

tony关东升
2016/02/24
0
0
Go语言_反射篇

2018/01/08
0
0

python达人
2017/12/25
0
1

2011/04/03
0
0

41分钟前
1
0
Coding and Paper Letter（四十四）

43分钟前
1
0
Ubuntu最新的主要操作系统放弃32位支持?

Linux就该这么学
44分钟前
1
0
Fundebug发布Vue插件，简化BUG监控接入代码

Fundebug
51分钟前
1
0
MySQL学习笔记之二

3
0