C++的函数的参数的传递方式

c++ 中, 函数的参数的传递方式有三种: 值传递, 指针传递和引用传递.

1. "值传递" 的示例程序.


 void fun1(int x){
  x = x + 10;
 }

 

 执行片断:


 int n = 0;
 fun1(n);
 cout << "n = " << n << endl;   //n = 0

 

 总结: 由于 fun1 函数体内的 x 是外部变量 n 的一份拷贝, 改变 x 的值不会影响 n, 所以 n 的值仍然是 0。

 

2. "指针传递" 的示例程序.


void fun2(int *x){
 (*x) = (*x) + 10;
}

 

执行片段:


int n = 0;
fun2(&n);
cout << "n = " << n << endl;  //n =10

 

总结: 由于fun2 函数体内的 x 是指向外部变量 n 的指针, 改变该指针的内容将导致 n 的值的改变, 所以 n 的值成为 10.

 

3. "引用传递" 的示例程序.


void fun3(int &x){
 x = x + 10;
}

 

执行片段:


int n = 0;
fun3(n); //
cout << "n = " << n << endl;    //n=10

 

总结: 由于fun3 函数体内的 x 是外部变量 n 的引用, x 和 n 是同一个东西, 改变 x 等于改变 n, 所以 n 的值成为10.

 

对比上面三个示例程序, 你会发现 "引用传递" 的性质象 "指针传递", 而书写方式象 "值传递".

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值