TreeMind树图在线AI思维导图
当前位置:树图思维导图模板资格考试计算机C语言形参和实参的区别思维导图

C语言形参和实参的区别思维导图

  收藏
  分享
会员免费下载30积分
会员免费使用30积分
你拥我暖 浏览量:22023-04-10 17:44:47
已被使用0次
查看详情C语言形参和实参的区别思维导图

如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;那么在计算机等级考试中的C语言考试需要掌握哪些知识,你对C语言中的函数又了解多少呢?为了方便大家备考计算机等级考试,树图网小编整理了C语言之C语言形参和实参的区别,希望对你有所帮助。

树图思维导图提供 C语言形参和实参的区别 在线思维导图免费制作,点击“编辑”按钮,可对 C语言形参和实参的区别  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:c01d1886fe0035c80a9bf39319b5f95c

思维导图大纲

C语言形参和实参的区别思维导图模板大纲

C语言形参和实参的区别

如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值。

这一节我们先来讲解C语言函数的参数,下一节再讲解C语言函数的返回值。

C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。

形参(形式参数)

在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。

实参(实际参数)

函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。

形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参。

形参和实参的区别和联系

1) 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。

2) 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。

3) 实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生"类型不匹配"的错误。当然,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型。

4) 函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。

请看下面的例子:

#include //计算从m加到n的值int sum(int m, int n) { int i; for (i = m+1; i <= n; ++i) { m += i; } return m;}int main() { int a, b, total; printf("Input two numbers: "); scanf("%d %d", &a, &b); total = sum(a, b); printf("a=%d, b=%d\n", a, b); printf("total=%d\n", total); return 0;}

运行结果:

Input two numbers: 1 100↙

a=1, b=100

total=5050

在这段代码中,函数定义处的 m、n 是形参,函数调用处的 a、b 是实参。通过 scanf() 可以读取用户输入的数据,并赋值给 a、b,在调用 sum() 函数时,这份数据会传递给形参 m、n。

从运行情况看,输入 a 值为 1,即实参 a 的值为 1,把这个值传递给函数 sum() 后,形参 m 的初始值也为 1,在函数执行过程中,形参 m 的值变为 5050。函数运行结束后,输出实参 a 的值仍为 1,可见实参的值不会随形参的变化而变化。

以上调用 sum() 时是将变量作为函数实参,除此以外,你也可以将常量、表达式、函数返回值作为实参,如下所示:

total = sum(10, 98); //将常量作为实参total = sum(a+10, b-3); //将表达式作为实参total = sum( pow(2,2), abs(-100) ); //将函数返回值作为实参

5) 形参和实参虽然可以同名,但它们之间是相互独立的,互不影响,因为实参在函数外部有效,而形参在函数内部有效。

更改上面的代码,让实参和形参同名:

#include //计算从m加到n的值int sum(int m, int n) { int i; for (i = m + 1; i <= n; ++i) { m += i; } return m;}int main() { int m, n, total; printf("Input two numbers: "); scanf("%d %d", &m, &n); total = sum(m, n); printf("m=%d, n=%d\n", m, n); printf("total=%d\n", total); return 0;}

运行结果:

Input two numbers: 1 100

m=1, n=100

total=5050

调用 sum() 函数后,函数内部的形参 m 的值已经发生了变化,而函数外部的实参 m 的值依然保持不变,可见它们是相互独立的两个变量,除了传递参数的一瞬间,其它时候是没有瓜葛的。

相关思维导图模板

904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查思维导图

树图思维导图提供 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 在线思维导图免费制作,点击“编辑”按钮,可对 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:10b9a8a2dd2fb4593f8130ef16c320fc

9.战斗的基督教思维导图

树图思维导图提供 9.战斗的基督教 在线思维导图免费制作,点击“编辑”按钮,可对 9.战斗的基督教  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:33d168acd0cd9f767f809c7a5df86e3a