結構體中的各個成員是按順序連續存放在記憶體中的。如果乙個結構體指標指向結構體變數,結構體指標所儲存的值是它所指向的結構體變數所佔記憶體的首位址。
struct student s1;
//略去對s1進行賦值的**
//......
struct student *p;
p=&s1;
printf("%d,%s",p->number,p->name);
在c語言中,為了方便和直觀,往往把(*p).number改寫為p->number。兩種寫法都是可以的。
//指向結構體陣列的指標
#includeint main()
; struct student s[3] = ,
, };
struct student *p;
//p開始指向結構體陣列s的第乙個元素,即第乙個結構體變數
//p++使p指向陣列的第二個元素
for(p=s; pnumber,p->name,p->***,p->age,p->addr);
return 0;
}
執行結果
結構體指標和結構體陣列
struct ha 100 b,c 3 d 結構體指標其實是乙個指標,它儲存的是指向某個結構體的 位址 所以結構體指標陣列儲存的其實是指向一組結構體的 位址 陣列,它本身並不包含結構體的具體內容 沒有被分配記憶體 所以當用到他們時,要麼重定向,比如 d b 讓d指向b,d儲存的是b的位址,這樣就能通...
和結構體 9 3 結構體指標
01指向結構體變數的指標 1 指向結構體物件的指標變數既可以指向結構體變數,也可指向結構體陣列中的元素。2 指標變數的基型別必須與結構體變數的型別相同。3 c語言中允許把 p num用p num來代替,代表乙個箭頭,p num表示p所指向的結構體變數中的num成員。02指向結構體陣列的指標 1 p ...
指標和結構體
struct test 定義乙個名為test的結構體 test pn1 定義結構體變數pn1 test pn2 定義結構體變數pn2 pn2.a 10 通過成員操作符.給結構體變數pn2中的成員a賦值 pn2.b 3 通過成員操作符.給結構體變數pn2中的成員b賦值 test point 定義結構指...