实参&形参
实参VS形参
1.实参 argument
实际参数,在函数调用的时候,传递给函数的参数。实参-按值调用
实际参数可以是变量、常量、表达式以及函数
实际参数必须得有确定的值(赋值、输入等),在函数调用时,把这些值传递给形式参数
2.形参 parameter
形式参数,是在函数定义中的参数。是定义函数名和函数体使用的参数
不是实际存在的参数,是虚拟变量
形式参数接收实际参数的值,实参于形参的个数以及类型要保证相同
3.实参和形参的重要性质
- 形参在函数定义中,在整个函数体可以使用,离开函数后不能使用
- 实参在主调函数中,进入被调查者函数后,实参变量也不能使用
- 实参与形参的结合,本质上就是数据的传递,传递时单向的,只能是 实参\(rightarrow\)形参
- 形参只有在被调用时,再进行内存的分配,调用结束后立即释放内存。形参和实参的内存不在一个区域
最重要的性质
当形参和实参不是指针类型
在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置
形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变
如果函数的参数是指针类型变量
- 在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。
- 所以在函数体内部可以改变实参的值
结论
良好的编程习惯对代码的时间效率影响很大
引用(指针)来传递复杂类型参数
如果采用值传递的方式,形参到实参会产生一次复制操作,这样的复制是多余的,影响代码的效率
实参&形参的更多相关文章
- 转载:老生常谈C++中实参形参的传递问题
以下文章转载自:http://www.jb51.net/article/108390.htm 函数中参数的传递 这里说的传递当然是指 实参是如何传递给形参的啦 还挺复杂的~~~~~~~~⊙﹏⊙b汗,这 ...
- day10:函数的实参&形参
函数的参数 (参数:配合函数运算的值)参数: (1)形参:形式参数,在函数的定义处 (2)实参:实际参数,在函数的调用处 形参: 普通形参(位置) , 默认形参 , 普通收集形参 ...
- javascript . 03 函数定义、函数参数(形参、实参)、函数的返回值、冒泡函数、函数的加载、局部变量与全局变量、隐式全局变量、JS预解析、是否是质数、斐波那契数列
1.1 知识点 函数:就是可以重复执行的代码块 2. 组成:参数,功能,返回值 为什么要用函数,因为一部分代码使用次数会很多,所以封装起来, 需要的时候调用 函数不调用,自己不会执行 同名函数会覆盖 ...
- day-11函数的形参与实参
形参与实参 参数介绍: 函数为什么要有参数:因为内部的函数体需要外部的数据 怎么定义函数的参数:在定义函数阶段,函数名后面()中来定义函数的参数 怎么使用函数的参数:在函数体中用定义的参数名直接使用 ...
- day_11函数的形参与实参
昨天讲了函数的定义和简单分类 1:什么是函数:具体特定功能的代码快 --特定功能代码作为一个整体,并给该整体命名,就是函数. 函数的优点: 1:减少代码的冗余 2:结构清晰,可读性强 3:具有复用性, ...
- day11 函数的位置形参,位置实参,可变长位置形参,关键字形参
今天内容 函数的参数详解 形参与实参 形参及形式参数,就是在定义函数是括号中指定的参数(本质就是一个名字) 实参及实际参数,指的是在调用函数是传入的参数)(本质就是一个值) 在调用函数是就会把形参和实 ...
- Javascript ----函数表达和形参实参
1.函数是对象,函数名实际上是函数对象的指针 1.函数声明方式 (函数声明提前) function sum(num1,num2){return num1+num2;} 2.函数表达式 var sums ...
- java基础 - 形参和实参,值传递和引用传递
形参和实参 形参:就是形式参数,用于定义方法的时候使用的参数,是用来接收调用者传递的参数的. 形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用结束之后便会释放所分配的内存单元. 因此,形 ...
- C语言形参跟实参详解
形参与实参今天我们来说下c语言形参与实参的区别,形参跟实参理解的话也很简单,但是好多同学关于这个知识点都是一知半解,没有真正的去透彻,一问都知道,但在真正引用的时候还会出现很多问题,而百度的时候又会说 ...
随机推荐
- 异常 Java oop
1.捕获异常 try——执行可能产生异常的代码 catch——捕获异常 finally——无论是否发生异常,代码总能执行 2.声明异常 throws——声明方法可能要要抛出的各种异常 3.抛出异常—— ...
- 最新try2hack全详解
第一题http://www.try2hack.nl/levels/: 方法:直接右键看网页源码 第二题http://www.try2hack.nl/levels/level2-xfdgnh.xhtml ...
- 工业物联网网关在线探测之TraceRoute
佰马工业物联网网关BMG500在线探测通常有Ping.DNS.TraceRoute三种技术方式,这三种方式的区别与联系是什么?本文着重介绍工业物联网网关在线探测的工作原理,以图文形式介绍无线网关在线探 ...
- Loadrunner参数(摘)
一.占有率分析 1. 平均事务响应时间 Average Transaction Response Time 优秀:<2s 良好:2-5s 及格:6-10s 不及格:>10s 2. 每秒点击 ...
- poj 2503 Babelfish(字典树或map或哈希或排序二分)
输入若干组对应关系,然后输入应该单词,输出对应的单词,如果没有对应的输出eh 此题的做法非常多,很多人用了字典树,还有有用hash的,也有用了排序加二分的(感觉这种方法时间效率最差了),这里我参考了M ...
- C#打开并选择特定类型文件并返回文件名
public string[] GetOpenFileDialogReturnFileFullName(bool multiSelect = false) { ...
- 学习spark 技术
spark sql 可以说是 spark 中的精华部分了,我感觉整体复杂度是 spark streaming 的 5 倍以上,现在 spark 官方主推 structed streaming, spa ...
- linux100day(day4)--文本处理三剑客
在介绍三剑客之前,先来认识一下通配符和正则表达式 通配符 正则表达式 作用:通过一些特殊字符,来表示一类字符内容 1.字符匹配 . 任意一个字符 [ ] 范围内的任意一个字符 [^ ] 取 ...
- 使用pandoc简单教程
使用pandoc作为过滤器 {#step-4-using-pandoc-as-a-filter} 类型 pandoc 并按Enter键.你应该看到光标就在那里,等着你输入一些东西.输入: Hello ...
- spring-boot-plus详细配置(五)
spring-boot-plus详细配置 公共配置 application.yml