你可以这么理解,比如我们定义了一个函数fun(),如果这个函数有返回值,那么在调用程序里面(比如主函数)就可以把这个函数当成一个数使用;如果没有返回值,那么通常他就是一个独立的语句存在。
创新互联-专业网站定制、快速模板网站建设、高性价比富裕网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式富裕网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖富裕地区。费用合理售后完善,十多年实体公司更值得信赖。
比如fun函数里面有个return 0;表示返回值是零,那么在调用函数里面就可以存在诸如
a=fun();b=a+fun();if(fun()=0{};……这类的语句,表示a=0;b=a+0;if(00){};等等,当然也可能是返回一个变量的值,你个指针的值是一样的。
如果没有return 语句,那么函数没有返回值,调用函数里面就不能把他当做一个数值来使用,会出现:
fun();单独成句的语句,在fun()里面可能进行了一些操作,但不需要结果。
C语言自带的函数通常都有返回值,计算函数返回计算结果,操作函数返回操作结果(成功返回1,失败返回0)
所谓返回值,就是人们想要知道函数或者程序所得到 的结果而设计的函数或者程序结束时给出一个值。比如:我们编写一个加法函数,肯定想知道加完过后的结果是什么,那么我们就指定这个结果为该加法程序的返回值。
关于返回值的返回:
1、函数调用语句本身代表其返回值:例如:fun(a);那么“fun(a)”就是这个返回值。
2、可以把返回值存到对应类型的变量之中。例如:int a=fun(b);
3、返回值是多种多样的,可以是各种各样的,int short char double 等等,还可以是指针或者结构体。在数据结构的二叉树部分,某一个函数的返回值是一个带有两个指针的结构体。
①为什么需要return?
为了回答这个问题,
我打算用 模块思维 来解释。
②定义模块(形参模块)
定义函数:f(s)(a,b)
满足公式:s=a+b
函数名:f(s)
形参: a,b(公式中的 变量 )
函数返回值:return s
③调用模块(实参模块)
主函数:main()表示用户自己编写的部分
调用函数:f(s)(1,2)
满足公式:x=f(s)(1,2)
函数名:f(s)和定义函数一致,产生调用
实参 :1,2( 赋值 给公式的值)
求值:printf("%d\n",x),求x的值?
④值的传递过程
调用模块 中调用函数x=f(s)(1,2)
将实参1和2的值赋值给
定义模块 中的形参a和b
(实参到形参是单向传递,不可逆)
定义模块计算出s=a+b=1+2=3
定义模块 中的return s
将s的值赋值给
调用模块 中的函数f(s)(1,2)
即x=f(s)(1,2)=s=3
~
return s的作用
就是将定义模块中的s
赋值 给调用模块中的调用函数
如果没有return s
调用模块中的调用函数将永远没有定值
即所求x 无定值
这一点和数学不一样,
数学中
同一函数名的值是 通用 的,
C语言中
定义函数和调用函数的值是 隔离 的,
尽管函数名一样
如果不赋值,调用函数永远无定值。
C语言,有返回值的处理,可以分两种情况,1,返回一个值,可以用:
返回类型 函数名([参数列表])
{
return (返回值);
}
多个返回值,可以返回一个自定义结构体,
返回结构体 函灵敏名([参数列表])
{
return (结构体名);
}
也可用指针的形式,直接操作,此时,接收返回值变量的地址,可以以指针的形式,传递给函数),进行操作,具体方法和实例.
返回值的意思是将函数实现的结果返回给调用者。
按标准来说,C的main函数是需要有返回值的。标准中main函数返回类型是int的,所以需要一个返回值。但是由于历史原因,很多地方可以看到没有返回值的main。
比如直接main()或者说void main() 但是这样一般编译器也不会认为错误,不过建议还是写标准的C的main函数,最好有一个返回值,0表示正常退出。
扩展资料:
常用库函数有:
scanf格式输入函数
printf格式输出函数
systemdos命令函数
sort排序
main主函数
fgets文件读取字符串函数
fputs文件写入字符串函数
函数的返回值通过return语句来执行,即return后的变量或表达式的值,就为该函数的返回值(你可以根据需要自定义返回什么值),而返回值的类型是指该值你想要得到的类型,比如return
a;(a的类型,你在函数体里定义的是int
a;但根据需要,你要的是一个float型的返回值),于是,这样定义一个函数:
float
函数名(参数列表)
{
int
a;
函数体;
……
return
a;
}
这样,返回值a就变成了float型。