在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 當發生函式呼叫時,需要給形參分配儲存單元 當傳遞是物件...