C++区分数组的引用和引用的数组
void f(int (&arr)[10]) {//正确}
void f1(int &arr[10]) {//不允许使用引用的数组}
[]
(数组下标运算符)的优先级高于&
(取地址运算符)。所有表达式&arr[i]等价于&(arr[i])
引用的数组
一个包含引用的数组(这是不可能的,因为C++不允许创建包含引用的数组,因为引用必须被初始化,并且一旦绑定就不能改变)。
数组的引用
当你声明一个对数组的引用时,你实际上是在创建一个别名,这个别名指向一个已经存在的数组。这意味着,通过这个引用,你可以访问和修改原始数组的元素,而且这种修改会影响到原始数组。数组的引用在函数参数中特别有用,因为它允许函数直接操作传入的数组,而不是数组的副本。
void f(int (&arr)[10]) {arr[0] = 666;
}
//void f1(int &arr[10]) {//不允许使用引用的数组
//
//}
int main() {int a[] = {1,2,3,4,5,6,7,8,9,0};f(a);cout << a[0];//666return 0;
}