隱式解引用

2021-06-23 06:11:25 字數 1173 閱讀 6176

引用和指標

引用和指標引用的行為像乙個const指標解引用乙個有趣的關係式。從而給出如下:

int nvalue = 5;

int *const pnvalue = &nvalue;

int &rnvalue = nvalue;

*pnvalue and rnvalue evaluate identically. as a result, the following two statements produce the same effect:

*pnvalue = 6;

rnvalue = 6;

同樣,乙個const引用的行為就像乙個const指標指向const物件是隱式解引用。

因為引用總是「點」來有效的物件,而不能指出釋放記憶體,引用的是比使用指標安全。如果乙個任務可以通過引用或指標解決,參考一般應首選。指標通常只能用在引用是不充分的情況下(如動態分配的記憶體)。

成員的選擇

通常有乙個指標或引用乙個結構(或類)。正如你已知道的,你可以選擇使用乙個struct的成員選擇運算子成員(。):

123

4567

891011

1213

1415

1617

struct something;

// member selection using actual struct variable

something ssomething;

ssomething.nvalue = 5;

// member selection using reference to struct

something &rssomething = ssomething;

rssomething.nvalue = 5;

// member selection using pointer to struct

something *pssomething = &ssomething;

(*pssomething).nvalue = 5;

注意指標解引用必須括在括號,因為成員選擇運算子具有比解引用操作符的優先順序更高的。

因為訪問結構和類成員通過指標是笨拙的語法,c + +提供的第二個成員選擇運算子(->)從指標做成員選擇。下面的兩行是等價的:

隱式解引用

引用和指標引用的行為像乙個const指標解引用乙個有趣的關係式。從而給出如下 int nvalue 5 int const pnvalue nvalue int rnvalue nvalue 同樣,乙個const引用的行為就像乙個const指標指向const物件是隱式解引用。因為引用總是 點 來有效...

物件是隱式解引用

引用和指標 引用和指標引用的行為像乙個const指標解引用乙個有趣的關係式。從而給出如下 1 2 3 intnvalue 5 int constpnvalue nvalue int rnvalue nvalue pnvalue和rnvalue評估同。作為乙個結果,下面兩個語句 產生相同的效果 1 2...

顯式解引用

這實際上會指定返回值的函式呼叫goo 到pfoo,這並不是我們想要的。我們希望pfoo被分配到功能良好,沒有從goo 返回值。所以沒有圓括號是必需的。請注意,簽名 引數和返回值的函式指標必須 函式的簽名匹配。這裡是乙個例子 123 4567 891011 function prototypes in...