00.结构标记,结构成员,普通变量可以采用相同的名称,他们不会冲突。
01.结构的合法操作只有几种:作为一个整体复制和赋值,通过&运算符取地址访问其成员。其中,复制和赋值包括向函数传递参数和从函数返回值。结构之间不能比较。
02.有结构数组
03.结构声明可以嵌套,但是不能递归,一个包含自身实例的结构是非法的。但是可以包括指向自身的指针。
04.结构是一种普通类型,结构名不再是地址,只有数组名和函数名是地址。
05.结构的大小
#include<stdio.h> int main(void) { struct pt{ double x; char y; }; printf("%ld",sizeof(struct pt)); return 0; }
输出:
16
注意这里输出不是8。选取最大的成员的长度*N,8*2=16
10.联合也是普通类型
11.联合的大小等于所有成员分量中最大的一个
12.联合的状态
union test key;
key.a=100;
key.b=4000;
那么联合中的值就只有一个,那就是key.b的值
衣带渐宽终不悔,为伊消得人憔悴