什么是結(jié)構(gòu)體指針數(shù)組?
之前我們講過一些復(fù)雜的類型聲明,不過那些都是為了應(yīng)付筆試面試,在實際的應(yīng)用中并不常見。
結(jié)構(gòu)體指針數(shù)組也比較復(fù)雜,但是在項目中經(jīng)常能看到。
struct Test { int a; char ch; };
首先得有一個結(jié)構(gòu)體,假設(shè)結(jié)構(gòu)體有兩個成員,一個整型,一個字符,在內(nèi)存中占 8 個字節(jié)。
structTestt; struct Test *p = &t;
結(jié)構(gòu)體的地址我們一般取最前面的字節(jié)地址,如果想保存這個地址,就得用 struct Test * 類型的變量,這個變量就是結(jié)構(gòu)體指針。
通過結(jié)構(gòu)體指針訪問結(jié)構(gòu)體成員,使用這個符號。
如果我們創(chuàng)建了多個結(jié)構(gòu)體,那就會得到多個結(jié)構(gòu)體變量的地址。
struct Test t1; structTestt2; structTestt3; structTestt4; structTest*array[4]={&t1,&t2,&t3,&t4};
想要把這些地址全部保存下來,可以考慮使用數(shù)組,這樣的數(shù)組,就是結(jié)構(gòu)體指針數(shù)組。
其實也很好理解,數(shù)組里面保存了多個指針,每個指針都指向一個結(jié)構(gòu)體。
如果通過數(shù)組名去訪問某個結(jié)構(gòu)體的某個成員,先取出地址,再通過地址訪問。
學(xué)習(xí)指針,畫圖是個很好的方法,搞清楚了內(nèi)存的關(guān)系,再去寫代碼就會容易的多。
-
指針
+關(guān)注
關(guān)注
1文章
484瀏覽量
71072 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26410 -
結(jié)構(gòu)體
+關(guān)注
關(guān)注
1文章
130瀏覽量
11060
原文標(biāo)題:結(jié)構(gòu)體指針數(shù)組
文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
C語言中指針數(shù)組和數(shù)組指針的區(qū)別
C語言里的鐵布衫——const
controlSUITE中例子代碼不理解
消息隊列傳遞結(jié)構(gòu)體指針和結(jié)構(gòu)體異同
單片機(jī)的結(jié)構(gòu)體和指針等資料說明

Keil使用結(jié)構(gòu)體數(shù)組的奇怪問題

FreeRTOS消息隊列 傳遞結(jié)構(gòu)體指針和結(jié)構(gòu)體異同

C程序設(shè)計基礎(chǔ)-數(shù)組與結(jié)構(gòu)體

C程序設(shè)計入門筆記之數(shù)組與結(jié)構(gòu)體

評論