在C++中,函数的参数主要有三种类型:
- 传值参数
- 引用参数
- 常量引用参数
下面将引入三个程序并对程序的执行过程和结果进行分析:
(1)传值参数:
int sum(int a,int b,int c){
return a + b + c;
}
int main(int argc,char *argv[]){
int x,y,z;
x = y = z = 5;
cout<<sum(x,y,z)<<endl;
cout<<x<<','<<y<<','<<z<<endl;
//cout<<a<<','<<b<<','<<c<<endl;
return 0;
}
在这段代码中,函数sum(int a,int b,int c)中的a、b、c是函数的形参,而主函数中的x、y、z则是a、b、c对应的实参。把a、b、c叫作传值参数。
运行过程:
函数执行前,先把实参x,y,z复制给形参a,b,。这个过程是由形参类型的复制构造函数完成的。
在函数被调用时,形参a,b,c分别被赋值。如果实参与形参的类型不同,在可进行类型转换的情况下,把实参的类型转换为形参的类型。
当函数运行结束时,形参类型的析构函数将释放函数的形参,而形参的值并不会影响改变实参的值。(及传值参数的赋值是单向的,只可以实参赋值给形参,