在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

指針和引用的區別及使用場景介紹

Q4MP_gh_c472c21 ? 來源:程序喵大人 ? 作者:程序喵大人 ? 2022-03-11 10:24 ? 次閱讀

先拋出兩個問題:

指針和引用有什么區別?

什么時候使用指針?什么時候使用引用?

一、指針和引用的區別

首先,看一段代碼:

int a = 1;int b = 2;int *c = nullptr;c = &a;int &d = b;

指針其實就是一個存放內存地址的整數,這個整數表示的是被指向的變量的地址。

引用其實就是變量的別名,就是給變量重新起了一個名字,注意引用既然是個別名,那它一定要有本體,一個人叫王二小,我們也可以給它起個別名叫二蛋,我們提到二蛋和王二小其實都是同一個人。

區別:

指針在聲明時可以暫時不初始化,即pointer = nullptr,指針在生命周期內隨時都可能是空指針,所以在每次使用時都要做檢查,防止出現空指針異常問題,而引用卻不需要做檢查,因為引用永遠都不會為空,它一定有本體,一定得代表某個對象,引用在創建的同時必須被初始化。

void FuncPtr(int *ptr) { if (ptr != nullptr) { cout << *ptr; }} void FuncReference(int &ref) { cout << ref;}

指針存放的是地址,指針可以被重新賦值,可以在初始化時指向一個對象,在其它時刻也可以指向另一個對象,而引用非常專一,它會從一而終,它總是指向它最初代表的那個對象。再舉個例子,有一個人叫特朗普,為他起個引用別名叫歷史上最傻吊的總統,這個引用一定會從一而終,即無論什么時候,歷史上最傻吊的總統一定是特朗普。而美國總統可以當作個指針,一段時間可以是奧巴馬,過一段時間可以是特朗普,再過一段時間可能是nullptr。

二、指針和引用的使用場景

引用的主要功能就是作為函數的參數和返回值,看一段代碼:

struct A { int a;};void func(const A &a) { cout << a.a;} vector vec(10);vec[3] = 3;為什么通過vec[3] =3可以改變vector容器的值,因為[]操作符返回的就是引用,相當于為內部的變量起了一個別名,這里還可以讓[]操作符返回一個指針,即*vec[3]=3,這是不是有點丑,而且不符合語法需求。

其實我們平時編程過程中可能也注意到,實際上引用可以做的事情指針都可以做,但為什么還要引用這個東西?

答案:

用恰當的工具做恰如其分的工作,指針可以毫無約束的操作內存中的任何東西,功能十分強大,但是也很危險,所以可以在恰當的時機使用引用,當你需要指向某個東西,而且一定專一,絕不會讓其指向其它東西,例如有些函數參數為了避免拷貝可以使用引用,或者實現一個操作符而其語法需求無法由指針達成,例如vec[3]=3,可以使用引用,其它任何時候,都要使用指針。

引用在c++11后其實有很多知識點,具體可以參考下列文章:

左值引用、右值引用、移動語義、完美轉發,你知道的不知道的都在這里

參考資料

《More Effective C++》

https://www.runoob.com/w3cnote/cpp-difference-between-pointers-and-references.html

https://blog.csdn.net/weikangc/article/details/49762929

https://www.jianshu.com/p/e548a978d737

https://zhuanlan.zhihu.com/p/63096392

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 指針
    +關注

    關注

    1

    文章

    484

    瀏覽量

    71074
  • 引用
    +關注

    關注

    0

    文章

    8

    瀏覽量

    7842

原文標題:指針和引用有什么區別?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    UWB應用場景

    鴻合智遠|捷揚微-產品簡介介紹:UWB應用場景
    的頭像 發表于 05-12 10:05 ?211次閱讀
    UWB應<b class='flag-5'>用場景</b>

    函數指針的六個常見應用場景

    用場景,并結合示例代碼進行講解。01、回調函數:解耦代碼,提高靈活性回調函數是嵌入式開發中最常見的函數指針用場景之一。它允許我們在函數執行過程中,動態調用用戶
    的頭像 發表于 04-07 11:58 ?401次閱讀
    函數<b class='flag-5'>指針</b>的六個常見應<b class='flag-5'>用場景</b>

    取樣示波器的技術原理和應用場景

    取樣示波器,也稱為采樣示波器,是一種重要的電子測量儀器,其技術原理和應用場景可以歸納如下:技術原理取樣示波器的根本原理是利用等效取樣技術,將周期性高頻(或高速)信號變換為與原來信號波形相似的低頻(或
    發表于 03-12 14:34

    數據記錄儀的計數原理和應用場景

    數據記錄儀是一種用于測量、記錄和分析各種數據的設備,其計數原理和應用場景可以歸納如下: 一、計數原理數據記錄儀的計數原理主要基于傳感器技術、信號處理技術以及數據存儲技術。具體來說: 傳感器采集
    發表于 02-24 14:28

    meshtastic的應用場景介紹

    meshtastic的應用場景介紹
    的頭像 發表于 02-21 12:02 ?603次閱讀
    meshtastic的應<b class='flag-5'>用場景</b><b class='flag-5'>介紹</b>

    敏捷合成器的技術原理和應用場景

    敏捷合成器,作為一種高性能的信號發生器,其技術原理和應用場景值得深入探討。技術原理敏捷合成器的技術原理主要基于先進的頻率合成技術和數字信號處理技術。它通常具有寬頻率范圍、快速建立和可編程的相位、頻率
    發表于 02-20 15:25

    脈沖信號分析儀?的原理和應用場景

    脈沖信號分析儀是一種用于測量和分析脈沖信號的精密儀器。以下是對其原理和應用場景的詳細介紹:一、原理脈沖信號分析儀的工作原理主要基于電子測量技術和信號處理技術。當脈沖信號被分析儀的接收器接收后,信號
    發表于 01-23 14:00

    混合信號分析儀的原理和應用場景

    混合信號分析儀是一種集成度高、功能強大的電子測量設備,其原理和應用場景如下:一、原理混合信號分析儀由模擬部分和數字部分組成,用于混合信號的分析。其工作原理主要包括以下幾個方面: 信號采樣:混合信號
    發表于 01-21 16:45

    低電平靈敏專用儀器的技術原理和應用場景

    低電平靈敏專用儀器是一種高精度、高靈敏度的測量工具,廣泛應用于各種需要精確測量微弱信號的場合。以下是對其技術原理和應用場景的詳細介紹:一、技術原理低電平靈敏專用儀器的工作原理基于精密的電路設計和先進
    發表于 12-06 14:45

    倍頻器的技術原理和應用場景

    倍頻器是一種用于將輸入信號的頻率倍增的電子設備,以下是關于倍頻器的技術原理和應用場景的詳細解釋:技術原理倍頻器的技術原理主要基于非線性元件(如二極管、晶體管等)的特性和頻率變換技術。 非線性元件
    發表于 11-29 14:49

    系統放大器的技術原理和應用場景

    系統放大器是一種重要的電子設備,其技術原理和應用場景都具有一定的專業性和廣泛性。以下是對系統放大器的技術原理和應用場景的詳細介紹:一、技術原理系統放大器的工作原理基于電子器件的非線性特性,通過控制
    發表于 11-18 14:46

    實時示波器的技術原理和應用場景

    實時示波器是一種高性能的電子測量儀器,其技術原理和應用場景對于電子工程和通信技術領域具有重要意義。以下是對實時示波器的技術原理和應用場景的詳細解釋:一、技術原理實時示波器的工作原理基于電子束在熒光屏
    發表于 10-23 14:22

    源測量單元設備的技術原理和應用場景

    源測量單元(SMU)設備是一種集成了精密電源(PPS)和高性能數字萬用表(DMM)功能的測試設備。以下是對其技術原理和應用場景的詳細解析:一、技術原理 集成功能: SMU在單個儀器中集成了電源
    發表于 10-22 11:10

    超聲波測厚儀的技術原理和應用場景

    超聲波測厚儀的技術原理和應用場景詳細如下:技術原理超聲波測厚儀利用超聲波脈沖反射原理來測量材料的厚度。具體工作原理如下: 發射超聲波脈沖:測厚儀的探頭(也稱為換能器)向被測物體發射一束高頻超聲波脈沖
    發表于 09-27 15:06

    面試常考+1:函數指針指針函數、數組指針指針數組

    在嵌入式開發領域,函數指針指針函數、數組指針指針數組是一些非常重要但又容易混淆的概念。理解它們的特性和應用場景,對于提升嵌入式程序的效率
    的頭像 發表于 08-10 08:11 ?1393次閱讀
    面試常考+1:函數<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>函數、數組<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>數組
    主站蜘蛛池模板: 麦克斯奥特曼在线观看 | 亚洲qingse中文在线 | 伊人久久精品成人网 | 国产做a爰片久久毛片a | 国产精品一区牛牛影视 | 久久久久久久久久免观看 | 天堂网在线资源www种子 | free性欧美video| 黄黄的网站在线观看 | 又粗又大撑满了好爽 | 欧美天堂色 | 九色综合网 | 大尺度视频在线 | 免看一级a一片成人123 | 欧美爱爱帝国综合社区 | 亚州色图欧美色图 | 777奇米四色米奇影院在线播放 | 毛片高清一区二区三区 | 天天躁夜夜躁狠狠躁 | 国产福利乳摇在线播放 | 久久久免费视频观看 | 亚洲爱爱图片 | 色综合久久九月婷婷色综合 | www天堂在线| 天天躁狠狠躁夜夜躁2021 | 亚洲一区不卡视频 | 男人天堂网在线视频 | 怡红院精品视频 | 日本69sex护士wwxx| 欧洲乱码专区一区二区三区四区 | 天堂tv亚洲tv日本tv欧美人tv | 91aaa免费观看在线观看资源 | 香蕉成人999视频 | www.青草视频| 日本一区二区在线不卡 | 一级一级毛片免费播放 | 综综综综合网 | 国内自拍网红在综合图区 | 久久久久久免费观看 | 亚洲成人高清在线 | 四虎影院永久网站 |