请解释 形参 int &arr[10]和形参 int (&arr)[10]的含义
答案:3 悬赏:10 手机版
解决时间 2021-04-04 03:21
- 提问者网友:半生酒醒
- 2021-04-03 18:17
请解释 形参 int &arr[10]和形参 int (&arr)[10]的含义
最佳答案
- 五星知识达人网友:玩家
- 2021-04-03 19:37
int &arr[10] 形参的&, 也就是引用是数组的引用, 但是C++中没有数组的引用这样的语句。这个是错误的。
int (&arr)[10] 这个是声明一个指向大小为10的数组的变量的引用。
如:
void fun2(int (&arr)[10]) {
}
调 用:
int a[10];
fun2(a);
在调用的时候fun2函数函数就不会以传值的方式再复制一份数组,而是引用传递的是数组a的本身。
这和以指针的使用效果基本一样,唯一不同的是指针的传值本身在函数体内被修改不能影响到所调用的实参,仅只能以指针指向的值是可以修改并可以在函数体外得以体现的。
int (&arr)[10] 这个是声明一个指向大小为10的数组的变量的引用。
如:
void fun2(int (&arr)[10]) {
}
调 用:
int a[10];
fun2(a);
在调用的时候fun2函数函数就不会以传值的方式再复制一份数组,而是引用传递的是数组a的本身。
这和以指针的使用效果基本一样,唯一不同的是指针的传值本身在函数体内被修改不能影响到所调用的实参,仅只能以指针指向的值是可以修改并可以在函数体外得以体现的。
全部回答
- 1楼网友:怀裏藏嬌
- 2021-04-03 21:04
int &arr[10] 中arr先做下标运算,再做解除引用运算,得到整形数据
int (&arr)[10] 中arr先做解除引用运算,在做下标运算,得到整形数据
int (&arr)[10] 中arr先做解除引用运算,在做下标运算,得到整形数据
- 2楼网友:往事隔山水
- 2021-04-03 20:37
第一个形参是引用传递,改变arr[]数组,如:在自定义函数void function(int &arr[10])中,不需要该函数的返回值,就能直接改变调用该函数的函数体中数组arr[];
第二个形参 int (&arr)[10],是传递数组元素的地址(十个地址类型的元素的地址),这个跟值传递
差不多,只是这个值是地址!
希望对你有帮助!谢谢!
第二个形参 int (&arr)[10],是传递数组元素的地址(十个地址类型的元素的地址),这个跟值传递
差不多,只是这个值是地址!
希望对你有帮助!谢谢!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯