函数的参数

实际参数(实参)

真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们必须有确定的值,以便把这些值传送给形参。

形式参数(形参)

形式参数是指函数名后括号中的变量。因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。

我们写一段代码感受一下:

#include<stdio.h>
#include<stdlib.h>
void Swap1(int x, int y)
{int tmp = 0;tmp = x;x = y;y = tmp;
}
void Swap2(int *px, int *py)
{int tmp = 0;tmp = *px;*px = *py;*py = tmp;
}
int main()
{int num1 = 1;int num2 = 2;Swap1(num1, num2);printf("%d %d\n", num1, num2);Swap2(&num1, &num2);printf("%d %d\n", num1, num2);system("pause");return 0;
}

输出结果:

上面Swap1和Swap2函数中的参数想x,y,px,py都是形式参数。在main函数中传给Swap1的num1和num2和传 给Swap2函数的&num1,&num2是实际参数。

让我们对函数的形参与实参进行分析:

代码对应的内存分配:

这里可以看到Swap1函数在调用的时候,x,y拥有自己的空间,同时拥有了和实参一模一样的内容。所以我们可以 简单的认为:形参实例化之后其实相当于实参的一份临时拷贝。

函数的参数(形参与实参)的理解相关推荐

  1. 函数的参数(形参与实参)—理解

    函数的参数 实际参数(实参) 实参可以是常量.变量或表达式;真实传给函数的参数,叫实参.实参可以是:常量.变量.表达式.函数等.无论实参是何种类型的量,在进行函数调用时,它们必须有确定的值,以便把这些 ...

  2. java形参列表怎么理解_关于Java中形参与实参的理解

    今天阅读了一个写的非常棒的博文,通过此博文再次复习了Java中参数传递的知识(即值传递与引用传递的区别).参考网站http://www.cnblogs.com/binyue/p/3862276.htm ...

  3. JavaScript--函数--参数--事件函数的关系--形参和实参

    函数 概念:函数就是代码块,可以多次调用,很容易实现模块化编程. 好处: 1)减少代码开发时间 2) 模块化编程 3) 可以重复使用 函数的定义: 形式1 function fn(){ // 函数体内 ...

  4. js中的对象、函数定义以及形参和实参

    一.对象属性的两种写法 1.点语法 点语法的属性值不加双引号,运用时不能使用变量 2.中括号的写法 (1)中括号写法obj["key"]=value;必须有双引号,原因是在key这 ...

  5. js函数中的形参和实参

    形参和实参是存在一种引用关系的,就好比变量中的引用关系.我们都知道,变量中的引用关系跟它们的值有关. 当值为原始类型时(string,number,boolean,int等等),var a=b是各自引 ...

  6. 深入理解函数的参数——实际参数(实参)和形式参数(形参)

    目录 初步了解函数的参数 实际参数 形式参数 深入学习 初步了解函数的参数 函数是我们编写程序必定会用到的,但是我们真的有那么了解它吗?今天就让我们从形参和实参的角度深入学习函数. 接下来让我们上一个 ...

  7. 函数基础——形参和实参

    文章目录 函数参数的两大分类 形参和实参的具体使用 位置参数 关键字参数 默认参数 可变长参数 *号和**号在实参中的使用 组合使用 函数参数的两大分类 形式参数:在函数定义阶段括号内声明的参数就叫形 ...

  8. python形参和实参同名_一道题带你搞定Python函数中形参和实参问题

    昨天在Python学习群里有位路人甲问了个Python函数中关于形参和实参一个很基础的问题,虽然很基础,但是对于很多小白来说不一定简单,反而会被搞得稀里糊涂.人生苦短,我用Python. 为了解答大家 ...

  9. python自定义函数参数_python自定义函数的参数之四种表现形式

    (1)def a(x,y):print x,y 这是最常见的定义方式,调用该函数,a(1,2)则x取1,y取2,形参与实参相对应,如果a(1)或者a(1,2,3)则会报错 (2)def a(x,y=3 ...

最新文章

  1. Python实现多行数据读入
  2. linux系统日志_如何使用 Linux Cockpit 来管理系统性能 | Linux 中国
  3. php实现服务器文件同步,PHPstorm配置同步服务器文件
  4. OSS音频编程概述(DSP部分)
  5. 虚幻引擎4中的移动设备分析插件
  6. Linux 双网卡绑定方法
  7. 数据科学 IPython 笔记本 8.8 直方图,分箱和密度
  8. Java编程:哈希表
  9. rmi 反序列化漏洞_Java反序列化漏洞自动挖掘方法
  10. 分析一个在高并发下的财务支付锁的问题
  11. 《css权威指南》笔记
  12. ArcGIS教程 - 5 地图可视化
  13. 计算机基础知识200分选择题,计算机基础考试题库及答案
  14. ForkJoinPool入门篇
  15. 我国嵌入式技术及应用现状分析
  16. matlab读取wav文件
  17. 基于 Self-hosted Debug 的调试
  18. 嵌入式linux 从u盘启动,嵌入式 linux中dd命令[用于制作U盘启动盘的神奇的命令]
  19. python launcher卸载后蓝屏_大毒瘤!卸载WeGame解决XPS 15蓝屏问题
  20. 大型网站存储瓶颈(广义水平拆分)

热门文章

  1. 安森美为何「上热搜」?汽车业务增量背后的隐忧已经出现
  2. DNA 4. SCI 文章中基因组的突变信号(maftools)
  3. 移动电源/便携式汽车应急启动电源UKCA/CE认证
  4. 在线抓包工具Whistle
  5. [转]经验分享:微信小程序外包接单常见问题及流程
  6. 干货分享:小鸟云虚拟主机如何绑定域名及解析域名?
  7. No qualifying bean of type 'com.xxx.xx.service.xxService' available: expected at leas
  8. html腾讯视频组件,3.腾讯视频组件
  9. java 中0x的数值表示方式 本质上是什么意思?
  10. STC15f2k60s2C语言定时器2,STC15F2K60S2 定时器2测试C.doc