当前位置: 编程技术>c/c++/嵌入式
C++对数组的引用实例分析
来源: 互联网 发布时间:2014-10-27
本文导语: C++中所谓数组引用,即指向数组的引用; 如: int a[10] ; int (&b)[10] = a ; 如果写成: int a[10] ; int* &b = a ; 系统将会报错: cannot convert from 'int [10]' to 'int *&'。 或许你会说在数组名不就是指向这个数组的一个...
C++中所谓数组引用,即指向数组的引用;
如:
int a[10] ; int (&b)[10] = a ;
如果写成:
int a[10] ; int* &b = a ;
系统将会报错: cannot convert from 'int [10]' to 'int *&'。
或许你会说在数组名不就是指向这个数组的一个指针吗?题中a是int*类型的,b是指向int*的引用,按理应该是正确的啊,为什么会报错呢?这是因为编译器对指向数组的引用检查更加严格,需要检查数组的维数,在这里a被理解成指向10个int数组的指针int [10],对于引用也需要相应的引用类型int (&)[10],即指向10个int数组的指针的引用。
c和c++中有一个“数组降价”问题。如下所示:
#include void test( char arr[100] ) { std::cout