C 结构体零散知识点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 结构体零散知识点的主要内容,如果未能解决你的问题,请参考以下文章

在C代码中将结构体变量作为参数传递效率忒低

C语言_结构体总结

c博客06-2019-结构体&文件

重温C与C++之结构体大小计算

js零散知识点总结

C语言提高:结构体嵌套一级指针