关于函数在传址,传值时候,形参,实参的变化
1.在传值调用中,形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变
#include<iostream>
using namespace std;
int a;//a是全局变量,任何一个地方a发生了变化,都会让a的值变化
int f(int r)//a=5,给到r=5
{
a = r + 1;//a=6,r=5
r = r * 2;//10
return r;//r是形参,调用完之后是没有值的
}
int t()
{
int x = f(a);//x=10
cout << a + x << endl;
return a + x;
}
int main()
{
a = 5;
t();
}
传址,传的是地址,该地址下所有值(形参和实参)都会改变
#include<iostream>
using namespace std;
int a;//a是全局变量
int f(int &r)
{
a = r + 1;
r = r * 2;
return r;
}
int t()
{
int x = f(a);
cout << a + x << endl;
return a + x;
}
int main()
{
a = 5;
t();
}