自学内容网 自学内容网

C++区分数组的引用和引用的数组

void f(int (&arr)[10]) {//正确

}
void f1(int &arr[10]) {//不允许使用引用的数组

}

[](数组下标运算符)的优先级高于&(取地址运算符)。所有表达式&arr[i]等价于&(arr[i])

正确写法:(&arr)[i]

因为括号的优先级最高,arr先和&结合,表示arr是一个引用,然后&arr再和[i]结合,表示arr是数组的引用! 

数组的引用
当你声明一个对数组的引用时,你实际上是在创建一个别名,这个别名指向一个已经存在的数组。这意味着,通过这个引用,你可以访问和修改原始数组的元素,而且这种修改会影响到原始数组。数组的引用在函数参数中特别有用,因为它允许函数直接操作传入的数组,而不是数组的副本。

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];//666
    return 0;
}


原文地址:https://blog.csdn.net/m0_62407354/article/details/143678312

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!