top有什么區別嗎?
這要從C語言的變量與指針這兩個概念說起。
在C語言中每個變量都有一種類型,比如基礎變量char, int, long, float等,還有表示復雜數據的結構體和聯合體。結構體和聯合體是一種遞歸定義的數據類型,但是最終還是由基本類型定義。
那么問題來了,對于基本的數據類型,直接使用變量名就可以訪問,但是對于這些復雜結構,該如何訪問他們的成員變量,這個時候就需要一種機制,于是
s.top
這種訪問方式就出現了。但是還有一個問題,一個變量可以用實例來定義并訪問,也可以通過指針來定義訪問,于是針對訪問指針類型的結構體或聯合體的成員,s->top就出現了。
其功能類似,只是一個用于實例變量,一個用于指針。當然,對于實例變量也可以這樣訪問(&s)->top;同理,對于指針你也可以這樣(*s)
.top
。從語法上來說都沒有錯,只是簡單問題復雜化,一般不這樣用罷了。