結構體中成員的引用

2021-09-07 22:37:45 字數 997 閱讀 4867

結構體如下:

struct student

;1. 結構體的初始化

struct student aa = ;

2. 引用整個結構體

struct student *p = &aa; //p指向aa這個結構體的首位址

3.結構體中,字元陣列的引用

char *q = aa.name;  //q指向 "zhang" 。因為 "zhang" 本身已經是字元陣列, 所以在指向他時,不需要再加乙個 「&」

4.結構體中,普通型別的引用

int *r= &aa.num;  // r 指向 1001 的位址

char *s= &aa.***; // r 指向 'm' 的位址

5. 因為有了p指向aa, 所以在引用aa的成員時, aa.num 和 p->num是等價的,和 (*p).num也是等價的

即  aa.num  ,   p->num,   (*p).num  均指向 name  

6.結構體陣列

struct student sru[3] = ,,

}struct struct *p = stu;

如果此時,我們想訪問陣列中第乙個元素的name, 即 "zhang".

有三種方法:

a) 直接訪問陣列stu

stu[0].name;

b) 用指標p訪問陣列stu

因為p已經指向了stu, 所有不能再用"."來訪問了,應該用"->"

p->name;

c) 接b,也可以寫成(*p).name;

以此類推,如果想訪問陣列中第二個元素的name, 即 "peng".

有三種方法:

c) 直接訪問陣列stu

stu[1].name;

d) 用指標p訪問陣列stu

(p+1)->name;

注意,因為+1是乙個四級運算子,所以必須先用括號括起來

e) 接d,也可以寫成(*p).name;

(*(p+1)).name;

結構體成員的引用

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

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

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

結構體中的成員對齊

關於結構體中成員對齊的總結 a.結構體中,結構體成員要對齊到其對齊值倍數的位址上,對齊值為min 成員型別對齊值,編譯器結構成員對齊值b.結構體本身的對齊值為其所有成員中最大的對齊值。c.結構體本身要對齊到其對齊值倍數的位址上。d.結構體中的結構體要對齊到其對齊值倍數的位址上。e.結構體成員在記憶體...