引用和指標
引用和指標引用的行為像乙個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的成員選擇運算子成員(。):
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 = &sso
注意指標解引用必須括在括號,因為成員選擇運算子具有比解引用操作符的優先順序更高的。
因為訪問結構和類成員通過指標是笨拙的語法,c + +提供的第二個成員選擇運算子(->)從指標做成員選擇。下面的兩行是等價的:
(運算子) 運算子
運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...
JS運算子 算術運算子 比較運算子 賦值運算子
兩邊的變數都是number型別 則是單純的加法運算 當字串出現時 結果是字串型別 字串之後的內容 不論什麼型別 都會被作為字串進行拼接 例子 var num1 10 var num2 20 num num1 num2 var result num1 num2 num1 false console.l...
NOT運算子與 運算子
6.4.2 not運算子與 運算子 對於簡單的條件查詢,not運算子與 運算子的功能幾乎沒有什麼區別,那麼not運算子的優勢體現在 呢?答案是它可以與其他運算子組合使用,這一點是 運算子所不能實現的。在6.4.1節已經介紹了not運算子與in運算子組合使用的例子,下面給出乙個not運算子與betwe...