C語言 指向結構體變數的指標,及其使用

2021-10-20 22:02:20 字數 1506 閱讀 7290

如果對結構體變數的使用不太熟悉,可以先看看博主的這篇文章【c語言】結構體變數定義、初始化、使用

1  先宣告結構體型別、定義結構體變數:

//宣告結構體型別

struct students

;

//定義並初始化結構體變數

struct students stu1=;

2  定義並初始化指向結構體變數的指標

//定義指向結構體變數的指標

struct students *pstu;

pstu=&stu1;

*3  測試位元組數

//測試位元組數

int sizeofpstu=sizeof(pstu);

printf("指標 pstu 的位元組數為:%d\n\n",sizeofpstu);//指標的 size 是 4

printf("指標指向的結構體變數 stu1 的位元組數為:%d\n\n",sizeof(*pstu));// pstu 指向的內容 stu1 的 size 是 20 + 4 = 24

//通過結構體指標訪問結構體變數

printf("姓名 年齡\n\n");

printf("%s %d\n\n",pstu->name,pstu->age);

與以下**等價:

printf("%s    %d\n\n",stu1.name,stu1.age);
完整測試**如下:

#include #include #define p printf

int main()

;

//定義並初始化結構體變數

struct students stu1=;

//定義指向結構體變數的指標

struct students *pstu;

pstu=&stu1;

//測試位元組數

int sizeofpstu=sizeof(pstu);

p("指標 pstu 的位元組數為:%d\n\n",sizeofpstu);//指標的 size 是 4

p("指標指向的結構體變數 stu1 的位元組數為:%d\n\n",sizeof(*pstu));// pstu 指向的內容 stu1 的 size 是 20 + 4 = 24

//通過結構體指標訪問結構體變數

p("姓名 年齡\n\n");

p("%s %d\n\n",pstu->name,pstu->age);

//與以下等價

p("%s %d\n\n",stu1.name,stu1.age);

return 0;

}

結果如下:

C指向結構體變數的指標 結構指標變數

乙個指標變數當用來指向乙個結構體變數時,稱之為結構體指標變數。結構體指標變數中的值是所指向的結構變數的首位址。通過結構指標變數即可訪問該結構的變數。結構指標變數說明的一般形式如下 struct 結構名 結構指標變數名 結構名和結構變數時兩個不同的概念,不能混淆。結構名只能表示乙個結構形式,編譯系統並...

結構體引用 C 指向結構體變數的指標

c 通過指向結構體變數的指標引用結構體變數中的成員 p num 表示指標p當前指向的結構體變數中的成員nump num 和 p num 等價,同樣,p namep name等價於 p name。在c 中,以下3種形式等價 p n 得到p指向的結構體變數中的成員n值。p n 得到p指向的結構體變數中的...

指向結構體變數的指標。

這兩天調程式,在指向結構體變數指標這一塊還有 運算子搞得不是很明白,下面是那段程式仔細研究一下。typedef struct usb down packet 下傳的資料報結構,用於命令 寫資料 u uint8 mlength 下面的緩衝區的長度,讀寫操作的位元組數 uint8 mbuffer max...