基於結構體與指標的詳解

2022-10-04 05:12:08 字數 1174 閱讀 1028

結構指標變數:結構指標變數的說明和使用乙個指標變數用來程式設計客棧指向乙個結構變數時

結構指標變數中的值是所指向的結構變數的首位址。通過結構指標即可訪問該結構變數,這與陣列元素的指標和函式指標的情況是相同的。

結構指標變數說明的一般形式為:

struct 結構名 * 結構指標變數名

例如: struct stu *pstu; 

其訪問的一般形式為:

(*結構指標變數).成員名 : (*pstu).num

或為:

結構指標變數->成員名  :pstu->num

應該注意(*pstu)兩側的括號不可少, 因為成員符「.」的優先順序高於「*」。如去掉括號寫作*pstu.num則等效於*這樣,意義就完全不對了。 

結構變數.成員名

(*結構指標變數).成員名

結構指標變數->成員名

這三種用於表示結構成員的形式是完全等效的。

結構陣列指標變數:結構指標變數可以指向乙個結構陣列, 這時結構指標變數的值是整個結構陣列的首位址。 結構指標變數也可指向結構陣列的乙個元素,這時結構指標變數的值是該結構陣列元素的首位址。

設ps為指向結構陣列的指標變數,則ps也指向該結構陣列的0號元素,ps+1指向1號元素,ps+i則指向i號元素。 這與普通陣列的情況是一致的。

複製** **如下:

#include

int main(void)

st[3]=, ,};  

struct student*   p;

p=st;

printf("/n/n    no.    age&lccysoltnbsp;   name   /n");

for(  ;p<=st+2;p++)

printf("  %ld    %d   %s/n",p->num,p->age,p->name);

getch();

printf("/n/n    no.    age    name   /n");

for( p=st ;p<=st+2;p++)

printf("  %ld    %d   %s/n",(*p).num,(*p).age,(*p).name);

getch();

return 0;

}

本文標題: 基於結構體與指標的詳解

本文位址:

結構體指標,C語言結構體指標詳解

結構體指標,可細分為指向結構體變數的指標和指向結構體陣列的指標。前面我們通過 結構體變數名.成員名 的方式引用結構體變數中的成員,除了這種方法之外還可以使用指標。前面講過,student1 表示結構體變數 student1 的首位址,即 student1 第乙個項的位址。如果定義乙個指標變數 p 指...

結構體指標與結構體中變數的指標

結構體指標與結構體變數指標的區別,在進行實現的工程專案中會有許多地方用到結構體指標的情況,在使用這前都需要先malloc一塊空間之後才能有空間進入儲存資料,例項 如下 include includetypedef struct student student t,pstudent t void pr...

結構體與指標

struct s options opt 此時結構體內的資料都是乙個隨機數 struct s options opts struct s options malloc sizeof struct s options 8 此時各元素為預設初始化值,例如int就是0 一 結構體的定義方法 1 直接定義 ...