一位朋友正在參加一個數據結構課程,我試圖解釋鏈接列表上下文中的差異。我真的應該知道這一點,但專注於高級框架,我有點生疏。我知道「箭頭用於指針」,但就是這樣。箭頭vs點語法?
本質上,在C中,訪問某個變量的屬性時,點和箭之間有什麼區別?另外,因爲我處於一種特別愚蠢的情緒,這在C++中是一樣的,還是它改變了?
一位朋友正在參加一個數據結構課程,我試圖解釋鏈接列表上下文中的差異。我真的應該知道這一點,但專注於高級框架,我有點生疏。我知道「箭頭用於指針」,但就是這樣。箭頭vs點語法?
本質上,在C中,訪問某個變量的屬性時,點和箭之間有什麼區別?另外,因爲我處於一種特別愚蠢的情緒,這在C++中是一樣的,還是它改變了?
正常情況下,.
用於具有直接訪問的結構,->
用於指向結構並需要取消引用以訪問結構的指針。
a->b
是(*a).b
的句法糖。在C和C++中都是一樣的。
myPtr->someVariable
與(*myPtr).someVariable
(取消引用myPtr,訪問成員)相同。如果您有*myPtr.someVariable
它將(myPtr.someVariable)
作爲指針(訪問成員,將整個事物作爲指針取消引用)。
pointersomething->member
是一回事
(*pointersomething).member
它的存在作爲一種快捷方式作爲一個在理論上可以做到
*pointersomething.member
不過。運算符比*運算符具有更高的優先級,因此括號是必需的,因此也是箭頭快捷鍵。
也高度相關:http://stackoverflow.com/questions/4984600/when-do-i-use-a-dot-arrow-or-double-colon-to-refer-to-members-of-a -class-in-c – jogojapan
不錯,我不知道爲什麼找不到它。 – Moshe
你的朋友應該閱讀C或C++語言的入門書。 –