我在大学里找了一些关于 C++ 的练习,我发现了这个练习:
#include <iostream>
using namespace std;
int& f(int*&);
int& f(int*& x) {
*x = 5;
return *x;
}
int main() {
int y = 1, x;
int* z = &y;
x= f(z);
cout << y << " " << x <<endl;
}
我想知道:有吗<any type>*&
有什么实际意义吗?不是f(int*& x)
与f(int x)
?您不是将指针传递给变量的 L 值吗?
f(int*& x)
不等于f(int x)
。在第一种情况下x
是对整数指针的引用,而在第二种情况下x
只是一个整数。
让我们从基础开始:
当你写的时候f(int &x)
意思是x
是对整数的引用,您可以更改其值x
在函数中,并且更改将反映在调用函数中。
同样,当你写f(int*& x)
, 代表着x
是对整数指针的引用,当您更改 x 指向的地址时,该更改也将反映在调用函数中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)