C 中陣列的引用 防止陣列退化

2021-08-31 19:13:41 字數 370 閱讀 3657

在c語言中,陣列作為函式引數時,實際上陣列已經退化為指標使用。 

下面這三種用法是等價的:

這樣一來,在f1中是無法知道陣列的大小的,開發者必須提前知道陣列大小。

c++中定義了陣列的引用(例如,int (&a)[2]),可以有效的防止陣列退化。 

也就是,陣列作為函式引數傳遞過去後,仍然是乙個陣列。

語法:型別 (&引用名)[陣列中元素數量]=陣列名;

舉例說明其用法

#include

using namespace std;

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

return count;

}cout<<"count:"

}

C 高階 C 中的陣列退化

在c 中,陣列永遠不會按值傳遞。它是傳遞第0個元素的指標 即首位址 例如,如下宣告 void putvalues int 10 被編譯器視為 void putvalues int 陣列的長度與陣列的宣告無關。因此,下列三個宣告是等價的 void putvalues int void putvalue...

引數傳遞時陣列引用保護陣列退化為指標

如下定義就得到乙個陣列的引用 型別名 變數明 n 在進行引數的傳遞時,陣列引用可以幫助我們防止陣列退化為指標,而這是我們在程式設計中很難注意到的問題。下面來看乙個例項 include void each int int ref 10 each int array 問題1 sizeof 的值?each...

c 中陣列的引用

在c 裡,陣列也是可以引用的。如下 1 char str1 abcde 2char str2 6 str1 解讀第二句 括號的優先順序最高,str2 首先與 相結合,表明 str2 是乙個引用。接著 str2 與右邊的 6 結合,表明str2是陣列的引用,且陣列中有6個元素。最後 str2 6 與左...