1、结构体无法把自己作为成员,但可以包含指向自己的指针成员
2、定义不完整结构类型(类型,结构,占用空间无法确定,如void指针,声明没有指明数组长度数组)只能使用小标签,即struct struct_name定义其成员
3、匿名结构体时赋值时可使用 . 代表当前变量,指定特定成员值
struct{int a; int b;} stu = {.a=1, .b=2}; printf("%d\n", stu.a);//输出1 stu.a = 123; printf("%d\n", stu.a);//输出123
如果结构体里再包含结构体,如下所示:
struct{int a; int b; struct{int c; int d}in;} stu = {.a=1, .b=2, .in.d=5}; printf("%d\n", stu.in.d);
此外结构体定义变量间分隔使用的是 ;
4、弹性结构成员,在结构体尾部声明一个未指定长度的数组成员,这种结构体一般以指针形式使用,在申请空间后,将指针指向其,并指定数组长度,为数组赋值,在对该结构体sizeof取值时,数组不计入,该结构体不可初始化
时间: 2024-10-12 14:04:41