int &g(int &i){return ++i;}是什么意思?
发布网友
发布时间:2024-10-23 22:04
我来回答
共1个回答
热心网友
时间:2024-11-07 14:00
int
&i部分的&是传递参数的一种方式,叫按引用传递
在被调用函数的中(这里是g()函数)修改参数值,那在调用函数(比如mian()函数)中实参的值也对应改变,实际上g()函数中对i的操作就是对调用函数中的实参操作,使用&相当于为实参起了一个别名,g()函数中并不为实参拷贝一个副本,i就是实参的别名。
int
&g部分的&是返回值的一种传值方式
在不使用这个&的函数在返回一个值时候需要拷贝一个副本,用于存储这个类型的值(如果本函数没有用&,这里申请了一个sizeof(int)大小的空间用来存储++i后的i的值),将这个副本传递给调用函数。使用了&后,调用函数相当于直接使用函数返回值而不生成这个值的副本。
当你学过类和对象后就知道这种使用返回值方法的好处了,节省空间(不另申请空间)和时间(减少调用拷贝构造函数和析构函数)