持之以恒
分类: C/C++
2009-06-15 11:08:10
如下定义就得到一个数组的引用==》引用是别名,不是类型,不占用相应的存储空间,所以不能建立相应的引用的数组。
类型名 (&变量明)[N];
实例
int int_array[10];
int (&int_ref)[10] = int_array;
这样就得到了一个数组的引用
在函数的声明中用数组的引用定义,就不怕数组退化(数组退化成指针)了。如下
for_each( int (&int_ref)[10] )
{
for( int i=0; i<10; ++i )
std::cout << int_ref[i] << std::endl;
}
int main( int argc, char* argv[] )
{
int int_array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
for_each( int_array );
return 0;
}
在上面的代码中,如果你传入不是10个尺寸的数组,是编译通不过的。代码的安全性提高了。
想要定义一个数组引用类型,方法如下
typedef 类型明 (&数组引用类型明)[N];
实例
typedef int (&Array_Ref)[10];
Array_Ref就是一个数组的引用类型了。