c 中陣列的引用

2022-10-10 06:36:09 字數 949 閱讀 5013

在c++裡,陣列也是可以引用的。

**如下:

1char str1 = "abcde";

2char (&str2)[6] = str1;

解讀第二句**,括號的優先順序最高,'str2'首先與'&'相結合,表明'str2'是乙個引用。

接著'&str2'與右邊的'[6]'結合,表明str2是陣列的引用,且陣列中有6個元素。

最後'(&str2)[6]'與左邊的'char'結合,表明被引用的陣列是乙個char型別的陣列。

在宣告陣列的引用時,有兩個地方需要注意:

第乙個地方是'&'的位置,它必須要與reference的名字用括號括起來。

第二個地方是必須要指定被引用的陣列中元素的個數,且元素的個數必須與實際所引用的陣列中元素的個數嚴格匹配。

兩種錯誤的宣告方式:

1//type1: char& str2[6] = str1;

2//vs編譯報錯:array of reference is not allowed(不允許使用元素為引用的陣列)

解讀一下這句**:

'str2'先與右邊的'[6]'結合,表示'str2'是乙個陣列。

接著'str2[6]'與左邊的'char&'結合,表示陣列中的元素是乙個char的引用。

1//type2: char (&str2) = str1;

2//vs編譯報錯:cannot convert from 'char [6]' to 'char (&)'

原因:需要指定所引用的陣列中所含元素的數量。

陣列引用的正確使用姿勢:

結合c++中模板中的非型別引數(nontype parameter)。

#include

template

int compare(char (&leftstr)[m], char (&rightstr)[n])

int main()

原文位址:

c 中陣列的引用

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

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

在c語言中,陣列作為函式引數時,實際上陣列已經退化為指標使用。下面這三種用法是等價的 這樣一來,在f1中是無法知道陣列的大小的,開發者必須提前知道陣列大小。c 中定義了陣列的引用 例如,int a 2 可以有效的防止陣列退化。也就是,陣列作為函式引數傳遞過去後,仍然是乙個陣列。語法 型別 引用名 陣...

c 陣列的引用

引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 引用最大的好處就是提高函式效率以及節省空間 值傳遞 pass by value 指標傳遞 pass by pointer 當發生函式呼叫時,需要給形參分配儲存單元 當傳遞是物件...