指針與引用當(dāng)賦予一個函數(shù)原始變量來處理時,什么是更好的實踐:unsigned long x = 4;void func1(unsigned long& val) {
val = 5; }func1(x);或:void func2(unsigned long* val) {
*val = 5;}func2(&x);IOW:有什么理由選一個而不是另一個呢?
3 回答

慕工程0101907
TA貢獻(xiàn)1887條經(jīng)驗 獲得超5個贊

largeQ
TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊
就像在所有其他地方一樣,永遠(yuǎn)是 const
-正確。 注意:這意味著,除其他外,只有out值(見項目3)和通過值傳遞的值(見項目4)才可能缺少 const
說明符。 只有當(dāng)值0/NULL是當(dāng)前上下文中的有效輸入時,才按指針傳遞值。 理由1:AS 打電話的人,你看,不管你經(jīng)過什么 一定是處于可用狀態(tài)。 理由2:AS 叫,你知道,不管是什么 是處于可用狀態(tài)。因此,不需要對該值執(zhí)行空檢查或錯誤處理。 理由3:理據(jù)1和2將是 編譯器強(qiáng)制..如果可以,請始終在編譯時捕獲錯誤。 如果函數(shù)參數(shù)是一個輸出值,則通過引用傳遞它. 理由:我們不想破壞第二項. 只有在值為POD( 普通舊數(shù)據(jù)結(jié)構(gòu) )或足夠小(內(nèi)存方面)或在其他方面足夠便宜(時間上)來復(fù)制。 理由:避免不必要的拷貝。 注: 足夠小
和 夠便宜的
不是絕對可以測量的。
- 3 回答
- 0 關(guān)注
- 389 瀏覽
添加回答
舉報
0/150
提交
取消