①为什么需要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语言中
定义函数和调用函数的值是隔离的,
尽管函数名一样
如果不赋值,调用函数永远无定值。