在C 中運算子 和 的區別

2021-09-25 10:40:03 字數 585 閱讀 8285

點和箭頭運算子都在c ++中用於訪問類的成員。

首先要明白的關鍵點是,在c ++中,宣告為class,struct或union的型別被視為「類型別」。

以下將說明兩者區別:(它們用於不同的場景

1. a.b 被用於當 b 是物件 a 的成員,需要訪問這個成員 b 的時候會使用a.b這樣的方式。(對這種方式,如果 a 是某物件的引用,引用就是乙個物件,那麼此時就可以使用 . 這種操作符);

2. a->b 其實是 (*a).b 這種訪問方式的簡寫,即當 a 是指向物件的指標是就需要這種方式來訪問這個 b ;

需要注意的是 運算子( . )是不可過載的運算子;運算子 ( -> )是可過載的運算子,因此我們可以定義我們自己的函式(operator->()),當使用此運算子時應該呼叫它。所以如果a是乙個過載operator->的類的物件(常見的型別是智慧型指標和迭代器),那麼 a 訪問自己的成員是肯定會呼叫這個自己實現的 (->) 運算子。

知道以上的知識點之後,我們來嘗試使用一下兩者,看看區別:

#includeclass a 

};int main()

C 中 運算子 和 運算子

運算子定義在將可空型別分配給非可空型別時返回的預設值。int?c null 若 c 為 null,則 d 為 1,否則把 c 值賦予 d int d c 1 型別名稱後加問號,如 int?i null double?d null bool?b null 可指定可為 null 的 int double...

C 中點運算子和箭頭運算子的區別

ps 需要快速看結論的,直接看文末總結歸納,需要理解的可以從文首開始看。p member執行為p offset member 目標的記憶體位址 s.member變成訪問 s offset member 目標的記憶體位址 因此實際上功能完全一致,看起來 p member更加直接一些,只不過s.memb...

運算子在C 中的作用

我們在學習新的知識或是 某些 時常常看到 的符號,它是什麼意思,有什麼作用呢?1 的作用 的解釋為 對某一常數轉化為二進位制時對各位進行取反,是一種位運算。舉個例子 4 的二進位製碼為 100 取反之後 變為 011 同時正負顛倒,於是 4 在數值上等於 5 同理 1046 1047 0 1 等等。...