数据结构 第三讲--参数的值传递与引用传递

本文通过一个C语言程序实例,演示了函数参数值传递与引用传递的区别。在值传递中,函数内部对参数的修改不会影响到实参;而在引用传递中,函数内部对参数的修改会影响到实参的值。
1、关于函数参数的传递方式:
值传递:只是将参数值copy函数中,因此在函数中无法修改该参数的值。修改的只是传入参数的一份copy.
引用传递:将参数地址传给函数,因此在函数中能修改该参数的值
  1. #define Fun_No_Error 1
  2. #include <stdio.h>
  3. /*
  4.     该程序用来验证,函数中参数的值传递,与引用传递的不同点
  5. */
  6. //Value deliver
  7. void FucValue(int a,int b)
  8. {
  9.     printf("/nAddress of a is %d",&a);
  10.     printf("/nAddress of b is %d",&b);
  11.     a=a+1;
  12.     b=b+1;
  13.     
  14. }
  15. //refer deliver
  16. void FucRefer(int &a,int &b)
  17. {
  18.     printf("/nAddress of a is %d",&a);
  19.     printf("/nAddress of b is %d",&b);
  20.     a=a+1;
  21.     b=b+1;
  22. }
  23. int main(int argc,int argv[])
  24. {
  25.     int input1,input2,input3,input4;
  26.     printf("Please input two integer:");
  27.     scanf("%d",&input1);
  28.     scanf("%d",&input2);
  29.     printf("/nAddress of input1 is %d",&input1);
  30.     printf("/nAddress of input2 is %d",&input2);
  31.     FucValue(input1,input2);
  32.     printf("/ninput1=%d/ninput2=%d",input1,input2);
  33.     printf("/nPlease input two integer:");
  34.     scanf("%d",&input3);
  35.     scanf("%d",&input4);
  36.     printf("/nAddress of input1 is %d",&input3);
  37.     printf("/nAddress of input2 is %d",&input4);
  38.     FucRefer(input3,input4);
  39.     printf("/ninput1=%d/ninput2=%d",input3,input4);
  40.     
  41. }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值