结构体 union

struct student {
unsigned num; /* 学号 */
char name[20]; /* 姓名 */
char sex; /* 性别 */
unsigned age; /* 年龄 */
float score; /* 分数 */
char addr[50]; /* 地址 */
};


struct date {
int year, month, day;
};
struct student{
unsigned num;
char name[20];
char sex;
struct date birthday;
float score;
} stu1, stu2;

注意{}不表示复合语句,其后有分号
同一结构体的成员不能重名
不同结构体的成员可以重名
结构体成员和其他变量可以重名
结构体类型与其成员或其他变量可重名
struct test { int test; } test;
结构体类型名称是struct 结构体名,注意struct关键字不能省略

struct student stu[10], p=stu;
++p->num; /* 同++(p->num); */
p++->num; /* 同(p++)->num; */


变量的定义
定义共用体类型的同时定义变量。
先定义共用体类型,然后定义共用体变量。
如果之后不再使用此共用体类型,可定义类型时省略共用体名并同时定义变量。
union example
{char c1;
int c2;
float c3;
}un1,un2;

变量的引用
引用共用体变量时,一定要记住某一时刻只能有某一个成员起作用。只能引用共用体变量的成员,而不能引用整个共用体变量。引用形式为:
共用体变量名.成员名
un1.c1,un2.c2,un1.c3是合法的引用。
可通过指向共用体的指针变量引用共用体变量,引用形式为:
共用体指针变量-〉成员名 或 (*共用体指针变量).成员名
语句“union un *pu;pu=&un1;”之后,(*pu).c,pu ->k是合法的引用。
说明:
给共用体变量赋值时,只能对共用体的一个成员赋值,而不能对整个共用体变量赋值。对共用体变量而言,只有最近一次被赋值的成员是有效的,其他成员无效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值