亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

指針與引用

指針與引用

C++
一只萌萌小番薯 2019-07-11 13:40:10
指針與引用當賦予一個函數原始變量來處理時,什么是更好的實踐: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貢獻1887條經驗 獲得超5個贊

我的經驗法則是:

如果要對指針執行指針算術(例如增加指針地址以遍歷數組),或者必須傳遞空指針時,請使用指針。

否則使用引用。


查看完整回答
反對 回復 2019-07-11
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

我認為建立以下函數調用編碼準則會使您受益:

  1. 就像在所有其他地方一樣,永遠是const-正確。

    • 注意:這意味著,除其他外,只有out值(見項目3)和通過值傳遞的值(見項目4)才可能缺少

      const

      說明符。
  2. 只有當值0/NULL是當前上下文中的有效輸入時,才按指針傳遞值。

    • 理由1:AS打電話的人,你看,不管你經過什么一定是處于可用狀態。

    • 理由2:AS,你知道,不管是什么處于可用狀態。因此,不需要對該值執行空檢查或錯誤處理。

    • 理由3:理據1和2將是編譯器強制..如果可以,請始終在編譯時捕獲錯誤。

  3. 如果函數參數是一個輸出值,則通過引用傳遞它.

    • 理由:我們不想破壞第二項.
  4. 只有在值為POD(普通舊數據結構)或足夠小(內存方面)或在其他方面足夠便宜(時間上)來復制。

    • 理由:避免不必要的拷貝。
    • 注:

      足夠小

      夠便宜的

      不是絕對可以測量的。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 391 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號