C++中&和*的含義

fy222fy發表於2020-02-15

&和*的含義

*的基本含義:

  1. 乘法運算子(雙目運算子):出現在表示式中。
  2. 解引用符(單目運算子):如果預先已經定義了p是一個指標,如int* p,那麼,再使用*p就是p所指向地址的值。總是出現在表示式中。
  3. 指標宣告符(定義時):如int *p;總是緊隨型別宣告符出現,是宣告的一部分。

&的基本含義:

  1. 按位與(雙目運算子):出現在表示式中。
  2. 取地址(單目運算子):出現在表示式中。
  3. 引用(定義時):這是C++在c功能上的擴充套件,是為了防止總是使用指標。引用指的是一個變數的別名,定義&b = a,那麼b從今以後就是a的一個別名,改變b的值也就改變了a的值。指標可能指向NULL,但引用從宣告開始必須賦值。引用的&總是緊隨型別名出現。

如何確認&或者*當前的含義?只需要看它用在什麼時候,比如&,在定義(宣告)或者用在函式引數宣告時,就是引用的含義,如果用在單目運算中,那肯定是取地址,如果用在雙目運算中,那就是按位與的含義。

相關文章