实参VS形参

1.实参 argument

实际参数,在函数调用的时候,传递给函数的参数。实参-按值调用

实际参数可以是变量、常量、表达式以及函数

实际参数必须得有确定的值(赋值、输入等),在函数调用时,把这些值传递给形式参数

2.形参 parameter

形式参数,是在函数定义中的参数。是定义函数名和函数体使用的参数

不是实际存在的参数,是虚拟变量

形式参数接收实际参数的值,实参于形参的个数以及类型要保证相同

3.实参和形参的重要性质

  • 形参在函数定义中,在整个函数体可以使用,离开函数后不能使用
  • 实参在主调函数中,进入被调查者函数后,实参变量也不能使用
  • 实参与形参的结合,本质上就是数据的传递,传递时单向的,只能是 实参\(rightarrow\)形参
  • 形参只有在被调用时,再进行内存的分配,调用结束后立即释放内存。形参和实参的内存不在一个区域

最重要的性质

当形参和实参不是指针类型

  • 在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置

  • 形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变

如果函数的参数是指针类型变量

  • 在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。
  • 所以在函数体内部可以改变实参的值

结论

良好的编程习惯对代码的时间效率影响很大

引用(指针)来传递复杂类型参数

如果采用值传递的方式,形参到实参会产生一次复制操作,这样的复制是多余的,影响代码的效率

最新文章

  1. Python多线程、进程入门1
  2. HDU 4873 ZCC Loves Intersection(JAVA、大数、推公式)
  3. IMapDocument interface
  4. sql中count(*)和count(字段名)区别
  5. 菜鸟的MySQL学习笔记(五)
  6. Adblock Plus完美过滤视频网站广告、无黑屏!及屏蔽非本站脚本的Adblock Plus过滤器语法之探讨
  7. C语言中不同类型的循环(Different types of loops in C)
  8. hdu 1533 Going Home 最小费用流
  9. servlet的运行工作
  10. AUTOSAR-关于配置文件的思考
  11. [认证授权] 5.OIDC(OpenId Connect)身份认证(扩展部分)
  12. Android 网络框架 OKHttp3
  13. selenium--控制浏览器和简单元素操作
  14. PLC 通讯
  15. Makefile经典教程(一个很棒很清晰的讲解)【转】
  16. 使用caffe模型测试图片(python接口)
  17. PAT B1003 我要通过!
  18. R语言学习笔记:使用tcltk包显示进度条
  19. 一些有用的git命令清单
  20. 【转载】COM 组件设计与应用(一)——起源及复合文件

热门文章

  1. spring+mybatis最简多数据源配置
  2. 【iOS】代码片段库
  3. js数组排序 多条件
  4. 警惕!CAF效应导致PCB漏电
  5. CentOS7 安装 单机 Mysql
  6. 佳木斯集训Day8
  7. Linux(Ubuntu)安装Swift和Swiftlint
  8. 【POJ - 2385】Apple Catching(动态规划)
  9. Flink 源码解析 —— 深度解析 Flink 序列化机制
  10. 狄利克雷卷积&莫比乌斯反演证明