首页 理论教育 C语言程序设计(第3版):函数返回值及其类型解析

C语言程序设计(第3版):函数返回值及其类型解析

时间:2023-11-23 理论教育 版权反馈
【摘要】:函数的返回值就是调用函数求得的函数值。有返回值函数相当于其他语言中的函数,而无返回值函数相当于其他语言中的过程。函数类型就是函数定义首部的类型名所定义的类型,即函数返回值的类型。当程序执行到函数体的return语句时,程序的流程就返回到主调函数中调用该函数处,并将“表达式”的值作为函数值带回到调用处。

C语言程序设计(第3版):函数返回值及其类型解析

函数的返回值就是调用函数求得的函数值。C语言中的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。有返回值函数相当于其他语言中的函数,而无返回值函数相当于其他语言中的过程。函数类型就是函数定义首部的类型名所定义的类型,即函数返回值的类型。

1.函数返回值与return语句

函数的返回值是通过函数中的return语句来获得的。

return语句的格式:“return 表达式;”或“return(表达式);”或“return;”。

return语句的功能:返回主调函数,并将“表达式”的值带回给主调函数。

当程序执行到函数体的return语句时,程序的流程就返回到主调函数中调用该函数处,并将“表达式”的值作为函数值带回到调用处。例如,例6.1中的max()函数,其中的“return(n1>n2?n1:n2);”语句的功能就是返回main()函数的“num=max(num1,num2);”语句中,并将表达式“n1>n2?n1:n2”的值作为函数值赋给num变量

无参函数和有参函数都可以有返回值,有返回值函数中必须有return语句,并可以根据需要有多个return语句,如例6.1中的max()函数可改为:

其功能完全一样。

无参函数和有参函数也都可以没有返回值,无返回值函数的末尾可以有一个不带表达式的return语句,或缺省return语句。如例6.2中的fun1()和fun2()函数都缺省了return语句。

【例6.3】分别计算1~100的累加和与1~10的累乘积。

程序运行结果如下:(www.xing528.com)

【例6.4】分别计算1~100的累加和与1~10的累乘积。

程序运行结果如下:

例6.3中的add()和fact()函数是有参而无返回值,例6.4中的add()和fact()函数是无参而有返回值。

2.函数类型

函数类型就是函数定义首部的类型名所定义的类型,也就是函数返回值的类型,因此,在定义函数时,无返回值函数的类型定义为void,有返回值函数的类型应与return语句中返回值表达式的类型一致。

当有返回值函数的类型定义与return语句中表达式的类型不一致时,则以函数类型定义为准,对于数值型数据,能自动进行类型转换,否则,按出错处理。

如果缺省函数类型定义,则系统一律按整型处理。例如,例6.1中的max()函数定义为int类型,其中的类型名int允许缺省。

【例6.5】求两个实数中大数的整数值。

程序运行情况如下:

该例中max()函数的定义缺省了类型名,系统默认为int类型,return语句中的表达式z为float类型,其值5.8自动转换为整数5返回给main()函数中的“c=max(a,b);”语句并赋给变量c。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈