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