結構體成員的引用 (箭頭)和 (點)

2021-09-13 03:23:11 字數 794 閱讀 5479

關於結構體成員的引用有這樣的規律:

箭頭(->):左邊必須為指標;(注意其實不是箭頭而是兩個符號)

點號(.):左邊必須為實體。

那麼如果乙個結構體指標引用乙個成員,這個成員又是乙個結構體(並且是乙個實體),那麼如果要引用這個成員的成員要怎麼辦呢?

經過實驗發現,依然遵循上面的規則即:箭頭左邊必須是指標,實體一定要用點號引用。比如:

一開始都用箭頭即c->s1->age

#include "stdio.h"

int main()

; struct class2;

struct class2 *c;

struct class2 cc;

cc.s1.age=9;

cc.s1.class_=2;

c=&cc;

printf("%d",c->s1->age);

return 0;

}

出現錯誤。

如果把**改為c->s1.age,**如下:

#include "stdio.h"

int main()

; struct class2;

struct class2 *c;

struct class2 cc;

cc.s1.age=9;

cc.s1.class_=2;

c=&cc;

printf("%d",c->s1.age);

return 0;

}

則編譯通過得到執行結果。

結構體成員的引用

有下面幾個結構體 struct 是個結構標籤 struct x struct y 20 z 或者typedef struct 是個型別名 x y 20 z struct complex struct complex comp 結構體成員直接訪問 comp.sa 4 c 結構體成員的間接訪問 當擁有乙...

結構體中成員的引用

結構體如下 struct student 1.結構體的初始化 struct student aa 2.引用整個結構體 struct student p aa p指向aa這個結構體的首位址 3.結構體中,字元陣列的引用 char q aa.name q指向 zhang 因為 zhang 本身已經是字元...

C語言結構體,點運算和箭頭運算

c語言有一種資料型別叫結構體,其定義格式為 struct結構體名 如 struct student 用結構體定義的變數叫結構體變數,如 struct student stu 定義乙個結構體變數stu 這種變數在引用結構體成員時,使用點 來操作,如 strcpy stu.name,zhangsan s...