我正在学习C ++编程,专门处理指针。在下面的代码中,我不明白为什么doub(int x)
和y
都不会更改trip(int* x)
的值。我知道最后两个函数都接受对象的地址,而第一个函数接受对象的地址。非常感谢任何解释或资源链接!
quint(int& x)
答案 0 :(得分:0)
another
将更改void doub(int& x) {
x = x * 2;
}
中y
的值。发生这种情况是因为main
复制了整数,而int x
通过引用传递了它(有点像指针,有点)。
编辑以更多地解释参考文献:实际上,您现在越能理解,即表示当您通过参考文献传递时,int& x
中的x
将是另一个int& x
中y
变量的名称,或者换句话说,是别名。另一方面,main
创建一个临时整数,它是原始文件的副本。
答案 1 :(得分:0)
这将打印7,因为这是无指针的情况。该值在函数调用时复制到堆栈中,并在函数返回时弹出。
要进行更改,就是为什么要有指针。使它不那么难看是为什么我们有参考文献。