形参与实参的参数传递,如何改变参数值
时间:2010-10-26 来源:theman_lai
#include <iostream> using namespace std; void change(int *a,int &b,int c) //这里的形参是*a,&b,c呢,还是a,b,c? { c = *a; b = 3; *a = 2; } int main() { int a = 1,b = 2, c = 5; change(&a,b,c);//这里的实参是&a,b,c呢,还是a,b,c? cout<<a<<b<<c<<endl; return 0; }
运行结果是 2 3 5
实参是a的地址,b的引用,和c的值 ,形参问得就有问题。
形参是用来表明函数本身需要实参的类型,这里的a,b,c跟主函数里的变量a,b,c没有任何关系。为防止混淆,这里把形参 a,b,c换成 aa,bb,cc
void change(int *aa,int &bb,int cc)
int *aa:需要一个int型指针(地址) 即 参数aa是一个地址
int &bb: 需要int型变量名的引用 参数bb是一个变量名的引用
int cc: 需要一个int型的值 参数cc是一个int型值
实参是传给函数的实际值
change(&a,b,c); //实参:a的地址,b的引用(*),和c的值
(*)调用时函数会通过形参(int &bb)来判断
这样一来 aa = 变量a的地址
bb = 变量b的别名
cc = 变量c的值
相关阅读 更多 +