想问一下,为什么x的纸不会改变但是y的值会改变

img


想问一下,为什么x的纸不会改变但是y的值会改变 -/:;fgqwer

指针传的是地址,从而可以修改该地址下存储的值; y 实参和形参指向的是同一块地址;而x传的是值,仅仅做了赋值操作,而形参的作用域只在调用函数内

看这个就知道了

C++中函数调用时的三种参数传递方式详解_c++中不同头文件怎么传值_CC丶Z的博客-CSDN博客 原文地址:http://blog.csdn.net/cocohufei/article/details/6143476; http://blog.chinaunix.net/uid-21411227-id-1826834.html 在C++中,参数传递的方式是“实虚结合”。按值传递(pass by value)地址传递(pass by pointer)引用传递(pass b..._c++中不同头文件怎么传值 https://blog.csdn.net/ccblogger/article/details/77752659?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169157228616800182764471%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169157228616800182764471&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-77752659-null-null.142^v92^controlT0_1&utm_term=c%2B%2B%E5%87%BD%E6%95%B0%E4%BC%A0%E5%8F%82&spm=1018.2226.3001.4187

【以下回答由 GPT 生成】

答案是: A) x = 10.200000, y = -3.200000

这是因为在C语言中,函数参数传递有两种方式:值传递和地址传递。值传递是指将实际参数的值复制给形式参数,形式参数在函数内部进行操作不会影响到实际参数。而地址传递是指将实际参数的内存地址传递给形式参数,形式参数可以通过指针来修改实际参数的值。

在这个例子中,变量x作为实际参数通过值传递的方式传递给函数sub,所以在sub函数内部,对a的修改不会影响到x的值。而变量y作为实际参数通过指针的方式传递给函数sub,所以在sub函数内部,可以通过指针pb来修改y的值。

具体来说,函数sub中的操作是将a的值减去指针pb所指向的变量的值,并将结果赋值给a,然后将指针pb所指向的变量的值减去a,并将结果赋值给指针pb所指向的变量。因此,最终输出的结果是x = 10.200000, y = -3.200000。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^