1. 程式人生 > >C 結構體零散知識點

C 結構體零散知識點

組成 申請 長度 指針成員 特定 class 當前 void logs

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 結構體零散知識點