如果對結構體變數的使用不太熟悉,可以先看看博主的這篇文章【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...