2013-06-21 85 views
-5

一位朋友正在參加一個數據結構課程,我試圖解釋鏈接列表上下文中的差異。我真的應該知道這一點,但專注於高級框架,我有點生疏。我知道「箭頭用於指針」,但就是這樣。箭頭vs點語法?

本質上,在C中,訪問某個變量的屬性時,點和箭之間有什麼區別?另外,因爲我處於一種特別愚蠢的情緒,這在C++中是一樣的,還是它改變了?

+0

也高度相關: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

+0

不錯,我不知道爲什麼找不到它。 – Moshe

+0

你的朋友應該閱讀C或C++語言的入門書。 –

回答

4

正常情況下,.用於具有直接訪問的結構,->用於指向結構並需要取消引用以訪問結構的指針。

a->b(*a).b的句法糖。在C和C++中都是一樣的。

2

myPtr->someVariable(*myPtr).someVariable(取消引用myPtr,訪問成員)相同。如果您有*myPtr.someVariable它將(myPtr.someVariable)作爲指針(訪問成員,將整個事物作爲指針取消引用)。

0
pointersomething->member 

是一回事

(*pointersomething).member 

它的存在作爲一種快捷方式作爲一個在理論上可以做到

*pointersomething.member 

不過。運算符比*運算符具有更高的優先級,因此括號是必需的,因此也是箭頭快捷鍵。