引用和指標
引用和指標引用的行為像乙個const指標解引用乙個有趣的關係式。從而給出如下:
1
2
3
int
nvalue = 5;
int
*
const
pnvalue = &nvalue;
int
&rnvalue = nvalue;
pnvalue和rnvalue評估同。
作為乙個結果,
下面兩個語句
產生相同的效果:1
2
*pnvalue = 6;
rnvalue = 6;
同樣,乙個const引用的行為就像乙個const指標指向const物件是隱式解引用。
因為引用總是「點」來有效的物件,而不能指出釋放記憶體,引用的是比使用指標安全。如果乙個任務可以通過引用或指標解決,參考一般應首選。指標通常只能用在引用是不充分的情況下(如動態分配的記憶體)。
成員的選擇
通常有乙個指標或引用乙個結構(或類)。正如你已知道的,你可以選擇使用乙個struct的成員選擇運算子成員(。):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 + +提供的第二個成員選擇運算子(->)從指標做成員選擇。下面的兩行是等價的:
1
2
(*pssomething).nvalue = 5;
pssomething->nvalue = 5;
笨拙的語法
123 4567 891011 1213 1415 1617 struct something member selection using actual struct variable something ssomething ssomething.nvalue 5 member selectio...
笨拙而詭異的 Oracle
有這樣一段 sql 通過 c 獲取查詢結果 sql 中有兩個引數,且都是字串型別,以上的 c 是生成 oracle sql 所需要的引數。執行結果如下 居然發生這樣的錯誤!苦思冥想外加多次嘗試,均無果!該錯誤的詭異之處在於 phdlevel 的值為 時,執行正常,而為某一狀態值 平衡,欠平衡,過平衡...
笨拙而詭異的 Oracle(之二)
有一張表,很多資料 想取某個月的資料。初始的想法很簡單,根據日期 rq 形成條件即可 符合條件的記錄數是 129835,但耗時太長 14.515 秒 rq欄位是做過索引的 直觀的反應是 oracle 的 to char 函式效率不高!那有沒有其他函式呢?有,找到了乙個 months between ...