什么是結構體指針數組?
之前我們講過一些復雜的類型聲明,不過那些都是為了應付筆試面試,在實際的應用中并不常見。
結構體指針數組也比較復雜,但是在項目中經常能看到。
struct Test { int a; char ch; };
首先得有一個結構體,假設結構體有兩個成員,一個整型,一個字符,在內存中占 8 個字節。
structTestt; struct Test *p = &t;
結構體的地址我們一般取最前面的字節地址,如果想保存這個地址,就得用 struct Test * 類型的變量,這個變量就是結構體指針。
通過結構體指針訪問結構體成員,使用這個符號。
如果我們創建了多個結構體,那就會得到多個結構體變量的地址。
struct Test t1;
structTestt2;
structTestt3;
structTestt4;
structTest*array[4]={&t1,&t2,&t3,&t4};
想要把這些地址全部保存下來,可以考慮使用數組,這樣的數組,就是結構體指針數組。
其實也很好理解,數組里面保存了多個指針,每個指針都指向一個結構體。
如果通過數組名去訪問某個結構體的某個成員,先取出地址,再通過地址訪問。
學習指針,畫圖是個很好的方法,搞清楚了內存的關系,再去寫代碼就會容易的多。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
指針
+關注
關注
1文章
484瀏覽量
71854 -
數組
+關注
關注
1文章
420瀏覽量
27362 -
結構體
+關注
關注
1文章
131瀏覽量
11372
原文標題:結構體指針數組
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
controlSUITE中例子代碼不理解
;EPwm8Regs #endif #endif #endif ];我的理解是他定義了一個結構體指針數組,后面的代碼中確實也用到了:void C1(void) // Fault Man
發表于 10-08 17:04
單片機的結構體和指針等資料說明
本文檔的主要內容詳細介紹的是單片機的結構體和指針等資料說明包括了:單片機的常量,單片機的變量,構造類型:數組,構造類型:結構
發表于 12-05 17:23
?17次下載
Keil使用結構體數組的奇怪問題
今天用keil的時候發現一個很奇怪的點,是關于結構體數組的。首先說明我的keil版本是:V5.28.0.0問題是這樣的:我在a.h文件定義了一個結構
發表于 11-21 16:36
?3次下載
什么是結構體指針數組
評論