C语言中传值问题
来源:互联网 发布:电磁仿真软件 feko 编辑:程序博客网 时间:2024/06/01 09:23
网上看了一些,自己归纳了一下传值大概分为已下3种:1:值传递 2:地址传递 3:引用传递1:值传递
1:值传递
#include <stdio.h>#include <stdlib.h>void exchange(int x,int y){int temp; temp=x; x=y; y=temp; printf("%d %d\n",x,y);}int main(){int a,b;scanf("%d %d",&a,&b); exchange(a,b);\\exchange(a,b)相当于只是把a,b的值传递给了x,y所以交换了x,y的值,但是并没有将a,b的值转化,等价于x=a,y=b中,交换xy值不影响ab量 printf("%d %d\n",a,b);system("pause");return 0;}
运行程序观察输出可以看出xy交换成功但是ab值并未发生变化
2:地址传递
#include <stdio.h>#include <stdlib.h>void exchange(int *px,int *py){int temp=*px; *px=*py; *py=temp; printf("%d %d\n",*px,*py);}int main(){int a=1,b=2; exchange(&a,&b);// 注意此时是把a的地址给px,b地址传递给py,px=&a,然后*px就可以对a,b进行修改 printf("%d %d",a,b);system("pause");return 0;
运行程序发现xy,ab都交换成功都分别为1 2
3:引用传递
#include <stdio.h>#include <stdlib.h>void exchange(int &px,int &py){int temp=px; px=py; py=temp; printf("%d %d\n",px,py);}int main(){int a=1,b=2; exchange(a,b);//这里ab将自己的地址传递给了px,py,然后pxpy就可以对ab进行操作,输出结果2 1,2 1 printf("%d %d",a,b);system("pause");return 0;}
0 0
- C语言中传值问题
- C语言的问题
- C语言指针问题
- C语言问题一则
- c语言问题
- C语言 for问题
- c语言的问题
- c语言的问题
- C语言的问题
- C语言的问题
- C语言的问题
- C语言问题...```
- c语言问题
- C语言画图问题
- C语言编程问题
- C语言问题
- C语言初级问题
- C语言猜拳问题
- Android的XML的运用
- 简谈wordpress中的ajax请求,为什么会一直返回“0”
- 搭建solr3.6搜索服务器
- HDU—— 5123 who is the best?
- linux内核编译与简易驱动
- C语言中传值问题
- dede 0day 利用小技巧
- layout_weight
- POJ3181 Dollar Dayz 【母函数】+【高精度】
- Python的感悟笔记
- nyoj205求余数(大整数求模)
- android 视频录制 例子源码
- Zigbee协议规范--数据传输原语流图及说明(
- 老公出轨还放言天下男人都偷吃