最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關于C++中引用的定義與使用詳解

 更新時間:2023年07月15日 10:22:12   作者:Pin_na  
這篇文章主要介紹了關于C++中引用和指針的區(qū)別,概念:引用是為已存在的變量取了一個別名,引用和引用的變量共用同一塊內(nèi)存空間,需要的朋友可以參考下

先舉幾個栗子:“及時雨”宋江、“臥龍”諸葛亮、“齊天大圣”孫悟空、“怡紅公子”賈寶玉。

上面幾個例子都是引用,不是叫一個新人物“及時雨”、“臥龍”等等,而是給這些任務取了一個別名,本質(zhì)上他們是一個人。

概念:引用是為已存在的變量取了一個別名,引用引用的變量共用同一塊內(nèi)存空間

格式:類型& 引用變量名(對象名) = 引用實體;   int& ra = a;  ra為a的引用

特點:

  • 引用實體引用類型必須為同種類型
  • 引用在定義時必須初始化
  • 一個實體可以有多個引用,但一個引用只能引用一個實體
void TestRef()
{
    int a = 1;
    int& ra; // 該條語句編譯時會出錯,引用定義時必須初始化
    int& ra = a;
    int& rra = a;
    printf("%p %p %p\n", &a, &ra, &rra);
}

常引用:const類型必須使用常引用 const int& ra = a;

void TestConstRef()
{
    const int a = 1;
    int& ra = a; // 該語句編譯時會出錯,a為常量
    const int& ra = a;
    const int& rd = d;
    double d = 1.00;
    int& rd = d; // 該語句編譯時會出錯,類型不同
}

使用場景:做參數(shù)、做返回值

  • 做參數(shù)
void Swap(int& left, int& right)
{
    int temp = left;
    left = right;
    right = temp;
}
  • 做返回值
int& TestRefReturn(int& a)
{
    a += 10;
    return a;
}

原理:引用是按指針方式實現(xiàn)的,所以底層上有空間,如果一個函數(shù)返回時,離開函數(shù)作用域后,其棧上空間已經(jīng)還給系統(tǒng),因此不能用棧上的空間作為引用類型返回,引用必類型返回值的生命周期必須比函數(shù)的生命周期長

int main()
{
    int a = 10;
    int& ra = a;
    ra = 20;
    int* pa = &a;
    *pa = 20;
    return 0;
}

匯編代碼:

到此這篇關于關于C++中引用和指針的區(qū)別的文章就介紹到這了,更多相關C++引用和指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解C語言未初始化的局部變量是多少

    詳解C語言未初始化的局部變量是多少

    這篇文章主要給大家介紹了關于C語言未初始化的局部變量是多少,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-07-07
  • Objective-C不帶加減號的方法實例

    Objective-C不帶加減號的方法實例

    顯而易見的事實是,Objective-C 中,+ 表示類方法,- 表示實例方法,這篇文章主要給大家介紹了關于Objective-C不帶加減號的相關資料,需要的朋友可以參考下
    2021-06-06
  • C++ 中字符串操作--寬窄字符轉換的實例詳解

    C++ 中字符串操作--寬窄字符轉換的實例詳解

    這篇文章主要介紹了C++ 中字符串操作--寬窄字符轉換的實例詳解的相關資料,希望通過本文能幫助到大家實現(xiàn)這樣的功能更,需要的朋友可以參考下
    2017-09-09
  • C++寫時拷貝實現(xiàn)原理及實例解析

    C++寫時拷貝實現(xiàn)原理及實例解析

    這篇文章主要介紹了C++寫時拷貝實現(xiàn)原理及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • C++實現(xiàn)LeetCode(115.不同的子序列)

    C++實現(xiàn)LeetCode(115.不同的子序列)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(115.不同的子序列),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++類成員構造函數(shù)和析構函數(shù)順序示例詳細講解

    C++類成員構造函數(shù)和析構函數(shù)順序示例詳細講解

    這篇文章主要介紹了C++類成員構造和析構順序示例,看了這個例子大家就可以明白c++構造析構的奧秘
    2013-11-11
  • C++優(yōu)先隊列用法案例詳解

    C++優(yōu)先隊列用法案例詳解

    這篇文章主要介紹了C++優(yōu)先隊列用法案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++中動態(tài)內(nèi)存管理的實現(xiàn)

    C++中動態(tài)內(nèi)存管理的實現(xiàn)

    本文主要介紹了C++中動態(tài)內(nèi)存管理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • Qt數(shù)據(jù)庫應用之實現(xiàn)csv文件轉xls

    Qt數(shù)據(jù)庫應用之實現(xiàn)csv文件轉xls

    這篇文章主要為大家詳細介紹了如何利用Qt實現(xiàn)csv文件轉xls功能,文中的示例代碼講解詳細,對我們學習或工作有一定參考價值,需要的可以了解一下
    2022-06-06
  • 詳解C語言之預處理(下)

    詳解C語言之預處理(下)

    這篇文章主要介紹了C語言程序的預處理,小編覺得這篇文章寫的還不錯,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-11-11

最新評論

封开县| 泰兴市| 临潭县| 博客| 罗山县| 山东| 巴楚县| 邳州市| 平邑县| 漳平市| 永兴县| 丰顺县| 乌兰察布市| 沽源县| 兴仁县| 湘西| 封开县| 锡林浩特市| 黎城县| 浪卡子县| 加查县| 深圳市| 新乐市| 罗定市| 呼和浩特市| 前郭尔| 苍山县| 琼结县| 汾西县| 延津县| 河北省| 上杭县| 宁乡县| 盈江县| 隆子县| 藁城市| 黎城县| 景德镇市| 神木县| 同仁县| 泰和县|