關於結構體成員的引用有這樣的規律:
箭頭(->):左邊必須為指標;(注意其實不是箭頭而是兩個符號)
點號(.):左邊必須為實體。
那麼如果乙個結構體指標引用乙個成員,這個成員又是乙個結構體(並且是乙個實體),那麼如果要引用這個成員的成員要怎麼辦呢?
經過實驗發現,依然遵循上面的規則即:箭頭左邊必須是指標,實體一定要用點號引用。比如:
一開始都用箭頭即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...