首页 > 代码库 > C 结构体零散知识点

C 结构体零散知识点

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取值时,数组不计入,该结构体不可初始化

C 结构体零散知识点