chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

指針和引用的區(qū)別及使用場(chǎng)景介紹

Q4MP_gh_c472c21 ? 來(lái)源:程序喵大人 ? 作者:程序喵大人 ? 2022-03-11 10:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

先拋出兩個(gè)問(wèn)題:

指針和引用有什么區(qū)別?

什么時(shí)候使用指針?什么時(shí)候使用引用?

一、指針和引用的區(qū)別

首先,看一段代碼:

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

指針其實(shí)就是一個(gè)存放內(nèi)存地址的整數(shù),這個(gè)整數(shù)表示的是被指向的變量的地址。

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

區(qū)別:

指針在聲明時(shí)可以暫時(shí)不初始化,即pointer = nullptr,指針在生命周期內(nèi)隨時(shí)都可能是空指針,所以在每次使用時(shí)都要做檢查,防止出現(xiàn)空指針異常問(wèn)題,而引用卻不需要做檢查,因?yàn)橐糜肋h(yuǎn)都不會(huì)為空,它一定有本體,一定得代表某個(gè)對(duì)象,引用在創(chuàng)建的同時(shí)必須被初始化。

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

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

二、指針和引用的使用場(chǎng)景

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

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

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

答案:

用恰當(dāng)?shù)墓ぞ咦銮∪缙浞值墓ぷ?,指針可以毫無(wú)約束的操作內(nèi)存中的任何東西,功能十分強(qiáng)大,但是也很危險(xiǎn),所以可以在恰當(dāng)?shù)臅r(shí)機(jī)使用引用,當(dāng)你需要指向某個(gè)東西,而且一定專一,絕不會(huì)讓其指向其它東西,例如有些函數(shù)參數(shù)為了避免拷貝可以使用引用,或者實(shí)現(xiàn)一個(gè)操作符而其語(yǔ)法需求無(wú)法由指針達(dá)成,例如vec[3]=3,可以使用引用,其它任何時(shí)候,都要使用指針。

引用在c++11后其實(shí)有很多知識(shí)點(diǎn),具體可以參考下列文章:

左值引用、右值引用、移動(dòng)語(yǔ)義、完美轉(zhuǎn)發(fā),你知道的不知道的都在這里

參考資料

《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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    71901
  • 引用
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    7927

原文標(biāo)題:指針和引用有什么區(qū)別?

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    函數(shù)指針介紹

    方式均可,其中第二種看上去和普通的函數(shù)調(diào)用沒(méi)啥區(qū)別,如果可以的話,建議使用第一種,因?yàn)榭梢郧宄闹该鬟@是通過(guò)指針的方式來(lái)調(diào)用函數(shù)。 指針函數(shù)本質(zhì)是一個(gè)函數(shù),其返回值為指針。 函數(shù)
    發(fā)表于 01-21 08:11

    值傳遞、指針傳遞、引用傳遞介紹

    中有開(kāi)辟了內(nèi)存空間來(lái)存放主調(diào)函數(shù)放進(jìn)來(lái)實(shí)參的值,從而成為一個(gè)副本。因?yàn)?b class='flag-5'>指針傳遞的是外部參數(shù)的地址,當(dāng)調(diào)用函數(shù)的形參發(fā)生改變時(shí),自然外部實(shí)參也發(fā)生改變。   3、引用傳遞:被調(diào)函數(shù)的形參雖然也作為
    發(fā)表于 01-21 06:48

    C語(yǔ)言函數(shù)指針的六個(gè)高級(jí)的應(yīng)用場(chǎng)景

    函數(shù)指針是一種非常強(qiáng)大的編程工具,它可以讓我們以更加靈活的方式編寫(xiě)程序。在本文中,我們將介紹 6 個(gè)函數(shù)指針的高級(jí)應(yīng)用場(chǎng)景,并貼出相應(yīng)的代碼案例和解釋。 回調(diào)函數(shù) 回調(diào)函數(shù)是指在某個(gè)
    發(fā)表于 01-04 12:25

    請(qǐng)問(wèn)C語(yǔ)言中整形溢出對(duì)哪些應(yīng)用場(chǎng)景影響較大?

    C語(yǔ)言中整形溢出對(duì)哪些應(yīng)用場(chǎng)景影響較大
    發(fā)表于 12-24 08:24

    請(qǐng)問(wèn)MOSFET在電源管理中有哪些應(yīng)用場(chǎng)景

    MOSFET在電源管理中有哪些應(yīng)用場(chǎng)景?
    發(fā)表于 12-23 07:07

    DC-DC與AC-DC電源芯片區(qū)別解析:核心差異、應(yīng)用場(chǎng)景與選型指南

    深入剖析DC-DC和AC-DC電源管理芯片的本質(zhì)區(qū)別,包括工作原理、技術(shù)架構(gòu)、應(yīng)用場(chǎng)景及設(shè)計(jì)難點(diǎn),幫助工程師精準(zhǔn)選型,提升電源系統(tǒng)效率與可靠性。
    的頭像 發(fā)表于 12-22 14:15 ?794次閱讀

    Switch的應(yīng)用場(chǎng)景

    Switch的應(yīng)用場(chǎng)景如下: 調(diào)用一到多個(gè)函數(shù) 設(shè)置變量值或者返回一個(gè)值 執(zhí)行一到多個(gè)代碼片段 如果case標(biāo)簽很多,在switch的前兩個(gè)使用場(chǎng)景中,使用查找表可以更高效的完成。例如下面的兩種
    發(fā)表于 12-12 07:28

    CW32L083有哪些應(yīng)用場(chǎng)景?

    CW32L083有哪些應(yīng)用場(chǎng)景
    發(fā)表于 11-24 07:37

    請(qǐng)問(wèn)CW32L011有哪些應(yīng)用場(chǎng)景

    請(qǐng)問(wèn)CW32L011有哪些應(yīng)用場(chǎng)景?
    發(fā)表于 11-17 06:25

    CW32L0系列都有哪些應(yīng)用場(chǎng)景?有哪些優(yōu)勢(shì)?

    目前芯源的低功耗MCU比較火爆,就是CW32L0系列都有哪些應(yīng)用場(chǎng)景?有哪些優(yōu)勢(shì)?
    發(fā)表于 11-14 06:03

    京東API接口的應(yīng)用場(chǎng)景介紹

    )。這些接口基于RESTful架構(gòu),使用HTTP協(xié)議進(jìn)行通信,數(shù)據(jù)格式通常為JSON,支持OAuth 2.0認(rèn)證以確保安全性。下面從技術(shù)角度,詳細(xì)介紹幾個(gè)關(guān)鍵應(yīng)用場(chǎng)景,包括其實(shí)現(xiàn)機(jī)制和優(yōu)勢(shì)。 1. 商品信息檢索與展示 應(yīng)用場(chǎng)景
    的頭像 發(fā)表于 11-03 14:13 ?345次閱讀
    京東API接口的應(yīng)<b class='flag-5'>用場(chǎng)景</b><b class='flag-5'>介紹</b>

    淘寶API接口的技術(shù)應(yīng)用場(chǎng)景介紹

    JSON或XML,支持OAuth 2.0認(rèn)證機(jī)制以確保安全性。開(kāi)發(fā)者通過(guò)這些接口可以編程式地訪問(wèn)淘寶的商品、訂單、用戶等核心數(shù)據(jù)和服務(wù)。以下從技術(shù)角度,分場(chǎng)景介紹其典型應(yīng)用,每個(gè)場(chǎng)景包括技術(shù)實(shí)現(xiàn)細(xì)節(jié)和實(shí)際價(jià)值。 1. 商品數(shù)據(jù)獲
    的頭像 發(fā)表于 11-03 13:49 ?380次閱讀
    淘寶API接口的技術(shù)應(yīng)<b class='flag-5'>用場(chǎng)景</b><b class='flag-5'>介紹</b>

    單多模光纖應(yīng)用場(chǎng)景一樣嗎

    單模光纖和多模光纖的應(yīng)用場(chǎng)景存在顯著差異,主要源于它們?cè)趥鬏斕匦?、成本和適用距離上的不同。以下是兩者的核心區(qū)別及典型應(yīng)用場(chǎng)景的對(duì)比分析: 一、單模光纖與多模光纖的核心區(qū)別 二、單模光纖
    的頭像 發(fā)表于 10-09 10:32 ?817次閱讀
    單多模光纖應(yīng)<b class='flag-5'>用場(chǎng)景</b>一樣嗎

    UWB應(yīng)用場(chǎng)景

    鴻合智遠(yuǎn)|捷揚(yáng)微-產(chǎn)品簡(jiǎn)介介紹:UWB應(yīng)用場(chǎng)景
    的頭像 發(fā)表于 05-12 10:05 ?1088次閱讀
    UWB應(yīng)<b class='flag-5'>用場(chǎng)景</b>

    函數(shù)指針的六個(gè)常見(jiàn)應(yīng)用場(chǎng)景

    應(yīng)用場(chǎng)景,并結(jié)合示例代碼進(jìn)行講解。01、回調(diào)函數(shù):解耦代碼,提高靈活性回調(diào)函數(shù)是嵌入式開(kāi)發(fā)中最常見(jiàn)的函數(shù)指針應(yīng)用場(chǎng)景之一。它允許我們?cè)诤瘮?shù)執(zhí)行過(guò)程中,動(dòng)態(tài)調(diào)用用戶
    的頭像 發(fā)表于 04-07 11:58 ?1529次閱讀
    函數(shù)<b class='flag-5'>指針</b>的六個(gè)常見(jiàn)應(yīng)<b class='flag-5'>用場(chǎng)景</b>