C語言- 第三十二章| struct - 結構與指標
文章推薦指數: 80 %
C語言教學,struct - 結構與指標,示範了如何宣告struct指標,以及如何使用&對struct實例取位址值,如果使用struct的指標來存取其成員,則必須使用-> ...
Thiswebsite
Archives
Categories
Tags
About
Donate
RSS
歡迎!您似乎正在使用廣告攔截器。
請考慮通過禁用您的廣告攔截器來支持我。
J.J.Huang
2019-11-27
C
瀏覽次數:次
{{moment(1574816400000).fromNow()}}
C語言-第三十二章|struct-結構與指標
結構與指標示範了如何宣告struct指標,以及如何使用&對struct實例取位址值,如果使用struct的指標來存取其成員,則必須使用->運算子。
1234567891011121314151617#include
123456789101112131415161718192021#include
注意到,以下的語法取得的是struct實例的成員位址值,而不是struct實例的位址值。
12structBallball={"red",4.0};printf("%p\n",&ball.color);
為了避免誤會,建議加上括號比較清楚。
12structBallball={"red",4.0};printf("%p\n",&(ball.color));
類似的,如果ptr是struct的指標,並儲存某個實例的位址值,那麼以下取得的是實例的成員位址值,而不是實例的位址值,建議還是如第二行的,加上括號比較清楚。
12printf("%p\n",&ptr->color);printf("%p\n",&(ptr->color));
下面這個例子是個比較進階的例子,程式中使用函式指標,讓struct實例擁有可操作的函式,而在操作struct實例擁有的函式時,傳入實例的位址值,如此該函式可以取得實例成員值並進行運算,這是在模擬物件導向中,物件實例擁有屬性及方法(method)的特性。
1234567891011121314151617181920212223242526272829#include
註:以上參考了結構與指標佇列-使用鏈結實作(C語言動態記憶體宣告)堆疊-使用鏈結實作(C語言動態記憶體宣告)
C語言-第三十一章|struct-struct簡介
C語言-第三十三章|struct-位元欄位
延伸文章資訊
- 1結構體(C語言) - 維基百科,自由的百科全書
在C語言中,結構體(struct)指的是一種資料結構,是C語言中複合資料類型(aggregate data type)的一類。結構體可以被聲明為變數、指標或陣列等,用以實現較複雜的 ...
- 2C 語言:結構變數與指標 - 寫點科普
- 3C語言- 第三十二章| struct - 結構與指標
C語言教學,struct - 結構與指標,示範了如何宣告struct指標,以及如何使用&對struct實例取位址值,如果使用struct的指標來存取其成員,則必須使用-> ...
- 4第十一章結構與其它資料型態
利用sizeof() 得到結構所佔用的記憶體空間 ... 於程式中定義結構變數student,並以指標ptr 指向它 ... C/C++ 裡並沒有提供這樣的語法, 但是習慣上大家都用.
- 5結構與指標
在〈定義結構〉中示範的printAcct 函式,參數直接以結構型態宣告,指定結構實例 ... 函式成為結構的成員之一,這麼組合有點物件導向語言中,物件與方法的概念,例如: