函数里只会改变c,ab不变
abc 一开始是2 5 8
第一个函数执行之后 2 5 7
第二个函数执行之后 2 9 7
第三个函数执行之后 16 9 7
所以是 16 9 7
#include <iostream>
using namespace std;
void fun(int x, int y, int * z)
{
*z = x + y;
x++;
y++;
}
int main()
{
int a(2), b(5),c(8);
fun(a,b,&c);
fun(c,a,&b);
fun(b,c,&a);
cout << a << " "<< b << " " << c << endl;
}
上机验证
因为参数传递分为 值传递和引用传递 ;值传递在函数是拷贝副本,在函数里修改,不会影响原来的值,修改的只是副本;引用传递相当于对变量取别名,相当于指针,只有一份原始值,对原始值修改会影响原来的值