结构体小结

11.26
1.
struct 结构体名 结构体成员
{
成员列表;
};
最后的“;”不能省!
也可指定一个无名的结构体类型,他不出现结构体名。
2.
结构体变量的初始化和引用。
struct 结构体名 结构体成员
{
成员列表
}成员={ }:
也可成员.成员列表= ;
*3.*只能对最低一级的成员进行赋值运算。
struct student{
int n;
struct birthday;
}stu;
struct birthday
{
int year;
}bir;
stu.bir.year= ;
*4.*结构体变量可以像普通变量一样进行各种运算。
11.27
1.
结构体数组
struct 结构体名
{成员列表} 数组名[数组长度] ;
如果先定义了一个结构体,这可以直接这样:
结构体类型 数组名[数组长度] ;
使用时和普通数组区别不大;
2.
结构体指针:
struct 结构体名 *p;
p代表了第一个元素;
可通过指针来指向结构体成员。如:
(*p).成员名;
p->成员名;
指向结构体数组的指针:
结构体数组的指针的初值为第一个元素的第一个成员的地址。
3.可用结构体变量和结构体指针变量作为函数参数。
如:#include<stdio.h> #include<stdlib.h> struct student { int num; char name[20]; float score[3]; }; //void print(struct student); void print(strut student *p); int main() { struct student stu; stu.num = 8; strcpy(stu.name, "hello world!"); stu.score[0] = 98.5; stu.score[1] = 99.0; stu.score[2] = 99.5; //print(stu); print(&stu); system("pause"); } void print(struct student *p) //void print(struct student stu) { int i; printf("\tname: %s\n", stu->name); printf("\tnum: %d\n", stu->num); for (i = 0; i < 3; i++) { printf("\tscore: %.2f\n", stu->score[i]); } }
11.29
链表:先定义一个结构体,结构体中必须有一个结构体变量的指针。这个结构体变量的指针指向下一个结构体。
建立动态链表的ns图
在这里插入图片描述
输出动态链表的ns图
在这里插入图片描述
11.30
共用体类型:
union 共用体名
{
成员列表
}变量列表;
当想根据不同情况,在同一个起始地址位置输入不同的数据类型时,
可以用共用体变量来实现。
共用体变量不能被使用,只能调用共用体变量的成员。
共用体的使用:
struct 结构体名
{
成员列表
union
{
成员列表
}变量列表;
}变量列表;
注意:(1)。同一个内存段可以用来存放几种不同类型的成员,但每一瞬时只能存放其中一个成员。
(2)。共用体中起作用的成员是最后一次被赋值的成员。
枚举类型:
enum[枚举类型] {枚举元素列表};
枚举元素按常量处理,故称枚举常量。

用 typedef 声明新类型名。
如: typedef int INTEGER
INTEGER 就代表了int
于是 int a也就相当于 INTEGER a
也可以用typedef struct {
int name;
}DATE;
于是可以这样定义结构体指针:
DATE *a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值