值传递、指针传递、引用传递

只有在函数调用时,才会为形参分配内存空间,调用结束便会释放。

值传递和指针传递,传递的都是实参的一份拷贝。

C语言在线编译器:http://www.dooccn.com/c/

值传递:

#include <stdio.h>

void exchange(int x, int y)
{
int tmp;
tmp = x;
x = y;
y = tmp;
printf("x=%d,&x=%d\ny=%d,&y=%d\n",x,&x,y,&y);
} int main(void)
{
int a=, b=;
printf("a=%d,&a=%d\nb=%d,&b=%d\n",a,&a,b,&b);
exchange(a,b);
printf("a=%d,&a=%d\nb=%d,&b=%d\n",a,&a,b,&b);
return ;
}

结果:

a=,&a=
b=,&b=
x=,&x=
y=,&y=
a=,&a=
b=,&b=

地址传递:

#include <stdio.h>

void exchange(int *x, int *y)
{
int *tmp=NULL;
tmp = x;
x = y;
y = tmp;
printf("*x=%d, x=%d\n", *x, x);
printf("*y=%d, y=%d\n", *y, y);
} int main(void)
{
int a=, b=;
printf("a=%d, &a=%d\n", a, &a);
printf("b=%d, &b=%d\n", b, &b);
exchange(&a,&b);
printf("a=%d, &a=%d\n", a, &a);
printf("b=%d, &b=%d\n", b, &b);
return ;
}

结果:

a=, &a=-
b=, &b=-
*x=, x=-
*y=, y=-
a=, &a=-
b=, &b=-

引用传递

#include <stdio.h>

void exchange(int &x, int &y)
{
int tmp;
tmp = x;
x = y;
y = tmp;
printf("x=%d, &x=0x%d\n", x, &x);
printf("y=%d, &y=0x%d\n", y, &y);
} int main(void)
{
int a=, b=;
printf("a=%d, &a=0x%d\n", a, &a);
printf("b=%d, &b=0x%d\n", b, &b);
exchange(a,b);
printf("a=%d, &a=0x%d\n", a, &a);
printf("b=%d, &b=0x%d\n", b, &b);
return ;
}

结果:

a=, &a=0x1079344872
b=, &b=0x1079344876
x=, &x=0x1079344872
y=, &y=0x1079344876
a=, &a=0x1079344872
b=, &b=0x1079344876

最新文章

  1. Openxml 笔记
  2. Web API Filter ActionFilterAttribute 使用
  3. Linux服务器配置git服务
  4. linux系统下sd卡的备份与恢复
  5. watch your tone
  6. [转]DRY原则和Shy原则
  7. 管理TEMP数据
  8. 常用SQL DDL语句
  9. 【JSP 标签】选择判断c:choose
  10. C#线程的使用(1)
  11. Python档案袋(函数与函数装饰器 )
  12. halcon+WinForm显示rgb图并灰度化
  13. PTA 逆散列问题 (30 分)(贪心)
  14. VS2017 安装打包插件
  15. [HEOI2017] 相逢是问候
  16. python第十九天——感冒中
  17. 【Codeforces 1129C】Morse Code
  18. WayOS计费对接(零点计费系统)详细教程
  19. 一分钟在云端快速创建MySQL数据库实例
  20. [BZOJ1937][SHOI2004]Mst最小生成树(KM算法,最大费用流)

热门文章

  1. 【cf375】D. Tree and Queries(dsu on tree+线段树)
  2. Web-babyphp
  3. JWT签名算法中HS256和RS256有什么区别 转载
  4. pymongo 笔记(转)
  5. ubuntu16.04matlab中文注释乱码的解决办法
  6. scala java 混合编译配置
  7. Vue 变异方法unshift&amp;pop&amp;shift
  8. Linux环境变量配置方法
  9. LeetCode 203:移除链表元素 Remove LinkedList Elements
  10. svg描边路径动画