天天看點

C++數組引用C++數組引用

C++數組引用

一、數組引用

C++數組的引用:

引用即别名

這樣比指針傳位址友善多了

形參中的(&a)[10]可以就看做a數組的别名,肯定要指定數組大小,如果沒有後面的數組大小,天知道是變量還是數組

普通傳值和引用傳值對比:

數組普通傳值:a-->a[10]      (或a[])

數組引用傳值:a-->(&a)[10]

變量普通傳值:a-->a

變量引用傳值:a-->(&a)

類比一下,很好了解

二、代碼執行個體

1 /*
 2 C++數組的引用:
 3 引用即别名
 4 這樣比傳位址友善多了 
 5 形參中的(&a)[10]可以就看做a數組的别名,肯定要指定數組大小,如果沒有後面的數組大小,天知道是變量還是數組 
 6 普通傳值和引用傳值對比: 
 7 數組普通傳值:a-->a[10]    (或a[]) 
 8 數組引用傳值:a-->(&a)[10]
 9 變量普通傳值:a-->a
10 變量引用傳值:a-->(&a) 
11 類比一下,很好了解 
12 
13 測試結果:
14 0 0 0 0 0 0 0 0 0 0
15 0 1 2 3 4 5 6 7 8 9 
16 */
17 
18 #include <iostream>
19 using namespace std;
20 void test(int a[10]);// 數組普通傳值,用于列印數組a的值 
21 void readData(int (&a)[10]); //數組引用傳值:将a數組指派為0--9 
22 void printData(int (&a)[10]); //數組引用傳值:用于列印數組a的值 
23 void test(int a[10]){// 數組普通傳值,用于列印數組a的值 
24     for(int i=0;i<10;i++)
25     {
26         printf("%d ",a[i]);
27     }
28     printf("\n");
29 } 
30 void readData(int (&a)[10]){//數組引用傳值:将a數組指派為0--9 
31     for(int i=0;i<10;i++)
32     {
33         a[i]=i;
34     }
35 }
36 void printData(int (&a)[10]){//數組引用傳值:用于列印數組a的值 
37     for(int i=0;i<10;i++)
38     {
39         printf("%d ",a[i]);
40     }
41 }
42 int main(){
43     int a[10]={0}; //為a數組中的每一個賦初值為0
44     test(a); // 數組普通傳值,用于列印數組a的值 
45     readData(a);//數組引用傳值:将a數組指派為0--9 
46     printData(a);//數組引用傳值:用于列印數組a的值 
47     
48     return 0;
49 }      

三、測試結果

測試結果:

0 0 0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7 8 9

C++數組引用C++數組引用