1,传值,当把值赋给函数形参时,是赋值的副本,在函数里做的任何改变都不会影响实参的值,

eg:

void swap(int a,int b)
{int temp;temp = a;a = b;b = temp;         printf("a=%d,b=%d\n",a,b);
}

int main(void){   int a = 7;    int b = 9;    swap(a,b);
    printf("a=%d,b=%d\n",a,b);    return 0;}

output:a=9b=7

a=7b=9

2,传引用,是在函数形参的前面加上(&)符来表示函数传递的是值的引用,可以理解为是实参的一个别名,我们知道通过&a = b来给一个变量其别名,那么别名(a)的改变也会导致原来值(b)的改变

void swap(int &a,int &b)
{int temp;temp = a;a = b;b = temp;     printf("a=%d,b=%d\n",a,b);
}int main(void)
{int a = 7;int b = 9;swap(a,b);printf("a=%d,b=%d\n",a,b);return 0;
}output:
a=9
b=7a=9
b=7

3,传地址,就是把实参的地址传递给函数,是在函数形参的前面加上(*)符来表示函数传递的是地址,指针指向的地址一样,那么函数里改变指针的值,实参的值也会改变

void swap(int *a,int *b)
{int temp;temp = a;a = b;b = temp;     printf("a=%d,b=%d\n",a,b);
}int main(void)
{int a = 7;int b = 9;swap(&a,&b);printf("a=%d,b=%d\n",a,b);return 0;
}output:
a=9
b=7a=9
b=7

转载于:https://www.cnblogs.com/ShowJoy/p/3613022.html

C/C++ 传值,传引用,传地址相关推荐

  1. 前端:JS/22/函数(函数的概念,函数的定义格式,函数定义格式的说明,函数的调用,函数的参数),全局变量和局部变量,拷贝传值和引用传址,匿名函数,二维数组,对象,自定义对象的创建

    函数 1,函数的概念 函数,是将一段公共的代码进行封装,给它起个名字叫"函数" 函数可以一次定义,多次调用:函数可以将常用的功能代码,进行封装,如:用户名的验证,验证码函数,邮箱验 ...

  2. 关于内存的划分和传引用传参数的区别

    1.堆 2.栈 空间较小 3.全局 4.代码段 要搞懂每个区域放什么东西 堆 复杂类型 栈 变量 静  代 复杂类型对象没有指针指的时候,堆中的内容垃圾回收 1 函数传对象的时候,其实是首先在堆里面开 ...

  3. C++中的参数传递方式:传值、传地址、传引用总结

    指针:指针是一个变量,只不过这个变量中存储的是一个地址,指向内存中的一个单元. 引用:引用和原变量是同一个东西,只不过是原变量的一个别名. int a = 10; 定义一个整型变量aint *p = ...

  4. python函数传值还是地址_python中给函数传参是传值还是传引用

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

  5. Go 学习笔记(65)— Go 中函数参数是传值还是传引用

    Go 语言中,函数参数传递采用是值传递的方式.所谓"值传递",就是将实际参数在内存中的表示逐位拷贝到形式参数中.对于像整型.数组.结构体这类类型,它们的内存表示就是它们自身的数据内 ...

  6. 2021-01-14python函数传参是传值还是传引用? 参数若是简单类型是传值 若是对象类型则是传引用,python是兼容两者传参方式的

    python函数传参是传值还是传引用? 首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题. ...

  7. JAVA中是传值还是传引用?回答KEZHANG问题

    首先,推荐对Java有一定理解的同仁一本书<Practical Java>.在<Practical Java>中也有一个章节介绍Java中关于传值和传引用的问题,堪称经典. & ...

  8. golang 传值 传引用 简介

    目录 1. 基础类型 2. struct 3. 函数 4. slice 5. map 6. chan 7. 总结 1. 基础类型 byte,int,bool,string,float,数组等均是传值. ...

  9. 值传递 引用传递(传地址,传引用)的区别

    传值      是把实参的值赋值给行参      那么对行参的修改,不会影响实参的值           传地址      是传值的一种特殊方式,只是他传递的是地址,不是普通的如int      那么 ...

最新文章

  1. 使用 CocoaPods 给微信集成 SDK 打印收发消息
  2. 大一期末考试,python,测试题,含答案
  3. centos7安装tomcat8.5.46版本碰到的问题
  4. 给定a和n,计算a+aa+aaa+a...a(n个a)的和(大数据处理)
  5. r语言echarts画箱线图_R语言之数据可视化---交互式图表recharts
  6. 数据结构系统学习(1)数据类型和数据结构的概念
  7. Android 性能优化工具
  8. Android 应用开发(12)---可绘制对象资源
  9. 执行计算机查错程序,计算机 每次启动过程中总会执行磁盘检查CHKDSK,什么问题???怎么处理??...
  10. IBM AIX6.1上安装OpenSSH手记【转】
  11. Nginx源码分析 - HTTP模块篇 - TCP连接建立过程(21)
  12. 植物大战僵尸pak修改
  13. 小程序 获取地理位置
  14. 中国金融市场目前存在的金融牌照总结
  15. 一键登录网易163邮箱
  16. 八、CSS基础选择器
  17. 如何把苹果卖出高价?
  18. 机顶盒宽带拨号失败服务器未响应,机顶盒详细错误代码.doc
  19. Windows XP 下安装SQL SERVER2005 问题汇总
  20. ant design vue:upload打开选择文件弹框前弹出确认框

热门文章

  1. 【2021年1月】RT-Thread社区简报
  2. FMSoft uniGUI 1.9.x,开发经验扩展到了一个新的维度
  3. 广播、组播 socket编程
  4. java中的逸出是什么意思,发布和逸出-构造过程中使this引用逸出
  5. python练手(PyAutoGUI)
  6. android电视传屏软件下载,希沃传屏app下载 希沃传屏(投屏软件) for Android V1.1.4.2813 安卓手机版 下载-脚本之家...
  7. MSP432驱动舵机串口输出角度
  8. Qlik Sense中处理SQL语句的流程
  9. 易助ERP账号密码集成
  10. Java基于springboot开发的漂亮的个人家乡博客系统有论文