iT邦幫忙

0

C 語言結構問題 (新手)

各位前輩,因為最近換了工作,接觸C語言
但對指標結構及指標很陌生特來請教各位前輩https://ithelp.ithome.com.tw/upload/images/20190724/20109634PsWzcMYMmm.png
像是圖片裡的DeviceInfo是一個結構,但又宣告一個結構指標的陣列,長度為十,https://ithelp.ithome.com.tw/upload/images/20190724/20109634Z8YOITwtt2.png
將長度10的結構陣列以 infoArray[] 帶入第二個FN,假設i為3,這樣的用法會有甚麼樣的結果,還有在做存取的時候,原始型態的結構成員值會被更改嗎,謝謝大家

你試試不就知道了?
wwx iT邦好手 1 級 ‧ 2019-07-25 08:40:04 檢舉
i = 3 時,
代表指標 info 等同 (infoArray + 3)
而結構 *info 等同 infoArray[3]
也可以改寫成
DeviceInfo &sInfo = infoArray[i];
那麼 i = 3 時,
結構 sInfo 等同 infoArray[3]
指標 &sInfo 等同 (infoArray + 3)
調用成員
info->type 就等同 sInfo.type
很容易用的啦!

1 個回答

0
小魚
iT邦大師 1 級 ‧ 2019-07-24 13:21:35

在做存取的時候,原始型態的結構成員值會被更改嗎

查一下C語言的傳值與傳址.

C語言應該算是所有高階語言當中最接近低階語言的,
如果你要用的是C語言不是C++,
去找一本書來研究並跟著實作,
舊一點也沒關係,
C語言這十幾年來應該沒什麼變化...

看更多先前的回應...收起先前的回應...
dance0531 iT邦新手 5 級 ‧ 2019-07-24 13:55:13 檢舉

的確實沒有特別的變化,因為目前摸的這套沒辦法逐行看值,只能用printf log的方式,如果使用錯誤的方式也無法看到值,才想說請問各位前輩看看

fillano iT邦超人 1 級 ‧ 2019-07-24 14:47:38 檢舉

https://www.jdoodle.com/c-online-compiler
自己做POC的话,用線上編譯器比較方便。

dance0531 iT邦新手 5 級 ‧ 2019-07-24 14:52:32 檢舉

謝謝大大,我來試試看,感謝

小魚 iT邦大師 1 級 ‧ 2019-07-24 16:47:33 檢舉

現在應該沒有純C的編譯器,
所以不能夠用C++嗎?

我要發表回答

立即登入回答