为什么```doub(int x)```不改变int x的实际值?

时间:2019-05-01 00:46:24

标签: c++ function pointers

我正在学习C ++编程,专门处理指针。在下面的代码中,我不明白为什么doub(int x)y都不会更改trip(int* x)的值。我知道最后两个函数都接受对象的地址,而第一个函数接受对象的地址。非常感谢任何解释或资源链接!

quint(int& x)

2 个答案:

答案 0 :(得分:0)

another

将更改void doub(int& x) { x = x * 2; } y的值。发生这种情况是因为main复制了整数,而int x通过引用传递了它(有点像指针,有点)。

编辑以更多地解释参考文献:实际上,您现在越能理解,即表示当您通过参考文献传递时,int& x中的x将是另一个int& xy变量的名称,或者换句话说,是别名。另一方面,main创建一个临时整数,它是原始文件的副本

答案 1 :(得分:0)

这将打印7,因为这是无指针的情况。该值在函数调用时复制到堆栈中,并在函数返回时弹出。

要进行更改,就是为什么要有指针。使它不那么难看是为什么我们有参考文献。