国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領取全套視頻
            千鋒教育

            關注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術干貨  > 為什么不存在引用的數(shù)組?

            為什么不存在引用的數(shù)組?

            來源:千鋒教育
            發(fā)布人:xqq
            時間: 2023-10-11 08:45:35 1696985135

            一、為什么不存在引用的數(shù)組

            因為數(shù)組是存放對象的地方,引用不是一個對象。指針和引用最大的區(qū)別就是指針是一個對象,引用不是對象。引用和指針不同。引用只是別名,沒有確定的大小,必須引用一個確定存在的變量。

            如果給了一個引用的數(shù)組,該如何分配空間呢?指針可以給一個NULL值或者nullptr,但是引用不行。

            沒有引用數(shù)組的原因

            (1)引用數(shù)組指的是引用類型的數(shù)組,也就是數(shù)組的各個成員是引用&類型,這是在c++中不能實現(xiàn)的

            (2)c++中,引用可以說只是某個變量的別名,所謂別名,是和指針類型區(qū)分開的:指針類型也可以

            指向某個變量,但指針類型本身也是一個變量,而引用實際上不是一個變量。更本質(zhì)來說,可以

            理解為引用沒有自身的地址,不占用內(nèi)存空間(這里為了簡化問題可以這樣考慮)。因此,

            聲明引用數(shù)組沒有辦法分配空間,因為根本就沒有空間可以分配給引用。所以不能聲明和定義引用數(shù)組

            (3)C++不支持傳統(tǒng)意義的復制:

            傳統(tǒng)的復制為:int a = b;

            這里a和b在內(nèi)存中分別占用不同的內(nèi)存空間,但是內(nèi)容一致。

            如果int& a = b; 這個時候,內(nèi)存中a并不被分配內(nèi)存,所以沒有復制可言。

            所以對于數(shù)組元素是引用來說,沒法完成元素的復制操作,沒有給數(shù)組分配內(nèi)存,所以數(shù)組中的元素不能是引用。

            延伸閱讀:

            二、數(shù)組的引用的作用(存在)

            (1)作為形參(防止數(shù)組退化為指針)

            int func(int array[]);

            int func(int array[10]);

            int func(int* array);

            在func中是無法知道數(shù)組的大小,如果開發(fā)者必須提前知道數(shù)組的大小,就需要用到數(shù)組的引用做參數(shù)

            例如,int(&a)[2],可以有效的防止數(shù)組退化。也就是,數(shù)組作為函數(shù)參數(shù)傳遞過去后,仍然是一個數(shù)組。

            優(yōu)點:節(jié)省內(nèi)存消耗,不用拷貝一份數(shù)組,直接使用原數(shù)組(甚至可以修改原數(shù)組)

            #include

            using namespace std;

            int func(int(&a)[6])

            {

            ??? int count = 0;

            ??? for (int i = 0; i < 6; i++)

            ??? {

            ?????? count += a[i];

            ??? }

            ??? return count;

            }

            int main()

            {

            ??? int a1[6] = { 1,2,3,4,5,6 };

            ??? int count = func(a1);

            ??? cout << “count:” << count << endl;

            ??? return 0;

            }

            代碼安全性提高:

            如果將 int a1[6] = { 1,2,3,4,5,6 }; 改為 int a1[5] = { 1,2,3,4,5 };

            編譯會報錯說明編譯時將進行數(shù)組長度的檢查

            (2)作為返回類型

            函數(shù)不能直接返回數(shù)組,但是可以返回數(shù)組的指針和數(shù)組的引用,還需要注意,返回的不能是棧對象,

            因為棧對象很快會被銷毀

            有關定義:

            題目:編寫一個函數(shù)的聲明,使其返回包含10個string對象的數(shù)組的引用

            //不用類型別名

            string(&func(形參))[10];

            //類型別名

            using arr = string[10];

            arr& func(形參);

            typedef string(&arr)[10];

            arr func(形參);

            //尾置返回類型

            auto func(形參)->string(&)[10];

            //decltype關鍵字

            string ss[10];

            decltype(ss) &func(形參)

            聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
            免費領取
            今日已有369人領取成功
            劉同學 138****2860 剛剛成功領取
            王同學 131****2015 剛剛成功領取
            張同學 133****4652 剛剛成功領取
            李同學 135****8607 剛剛成功領取
            楊同學 132****5667 剛剛成功領取
            岳同學 134****6652 剛剛成功領取
            梁同學 157****2950 剛剛成功領取
            劉同學 189****1015 剛剛成功領取
            張同學 155****4678 剛剛成功領取
            鄒同學 139****2907 剛剛成功領取
            董同學 138****2867 剛剛成功領取
            周同學 136****3602 剛剛成功領取
            相關推薦HOT
            matlab稀疏矩陣使用的是什么數(shù)據(jù)結構?

            一、matlab稀疏矩陣使用的數(shù)據(jù)結構Matlab中的稀疏矩陣(sparse matrix)使用的是壓縮列(Compressed Column)存儲方式,也叫CCS存儲方式,它是...詳情>>

            2023-10-11 10:35:12
            B+樹查詢的穩(wěn)定性為什么重要?

            一、B+樹查詢的穩(wěn)定性為什么重要首先最大的優(yōu)勢還是磁盤IO和范圍,從我個人的看法看,穩(wěn)定性(每次查詢必須從根走到葉子節(jié)點)這意味行為可預估...詳情>>

            2023-10-11 09:55:33
            HDFS和raid5各有什么優(yōu)劣?

            一、HDFS和raid5的優(yōu)劣勢1、架構設計HDFS的設計目標是支持大數(shù)據(jù)存儲和分析,具有高可靠性和高可擴展性。它使用多臺服務器組成一個集群,通過分...詳情>>

            2023-10-11 09:54:21
            C語言中List是什么?

            一、C語言中的List在C語言中,“List”是一個抽象的數(shù)據(jù)類型,表示一組有序的數(shù)據(jù)元素。List可以實現(xiàn)各種數(shù)據(jù)結構,如鏈表、數(shù)組、棧和隊列等,...詳情>>

            2023-10-11 09:36:59
            C數(shù)據(jù)結構與算法是什么?

            一、C數(shù)據(jù)結構與算法C數(shù)據(jù)結構就是指一組數(shù)據(jù)的存儲結構。算法就是操作數(shù)據(jù)的一組方法。數(shù)據(jù)結構和算法是相輔相成的。數(shù)據(jù)結構是為算法服務的,...詳情>>

            2023-10-11 09:30:58