问一下c语言函数返回值的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:15:05
return 语句的一般形式为:
return 表达式;
或者为:
return (表达式);
如int a=3,b=5; /*a,b为外部变量*/
max(int a,int b) /*a,b为外部变量*/
{int c;
c=a>b?a:b;
return(c);
}
main()
{int a=8;
printf("%d\n",max(a,b));
return(c)括号里c就是局部变量c?另外也不管主函数是否有相应的变量?直接扔给他就行了?他自己就能反给被调用函数max?
c就相当于max函数的结果吧?

我的理解:
return 后 局部变更c已经不占内存,已经不存在了
main里面max(a,b)的返回值,是隐式的创建变量

return(表达式),返回的是表达式的值,可以返回给函数本身的,比如上面的函数按这样调用:max(max(a,b),b)。把max(a,b)作为表达式,他的值就是return返回的值

在被调用函数里,任何合理的表达式都可以作为返回值, 表达式的结果就是返回值。 就这个问题而言, c的内容就是返回值。 他有权返回什么跟调用它的函数里的一切都毫无关系。

对调用它的函数而言, 相当于在调用的位置写一个常量,这个常量的值就是那个函数的返回值。

变量c只在主函数起作用, 超过了作用范围...