以下的输出结果是多少?怎么得呢?希望高手解释详细点

来源:百度知道 编辑:UC知道 时间:2024/06/18 15:22:48
#include<stdio.H>
int func(int a,int b)
{ return(a+b);}
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}

#include<stdio.H>
int func(int a,int b)
{ return(a+b);}
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}
先说结果是15
r=func(func(x,y),z);
难点在这里
func(int a,int b)
他的方法有二个参数
r=func(func(x,y),z);
那么这里你看这样能懂吗r=func( return(x+y)把他当做一个参数 ,z);
调用func里面嵌套了个func方法页嵌套返回一个整值又做为一个参数来调用func

func(func(x,y),z);

func(x,y)的返回值是7,并以此作为外层func()函数的第一个参数,与z一起传入函数,所以外层func()返回15,即r=15

15,楼上的解释很正确,这是一个函数嵌套

15
这是函数自我嵌套的一种简单情况:
先把x,y值代入func函数,得到的返回值7,7再和z在代入func函数,这次得到的返回值15在赋给r,最后在输出r。

函数是不能嵌套的.
这只是将一个函数返回值作为另一个函数参数而已.只不过这里是一个函数.

#include<stdio.H>
int func(int a,int b) //定义func,其输出结果为另整形数据和
{ return(a+b);}
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z); //func(func(x,y),z)=fun(x,y)的值与z再进行
func运算
printf("%d\n",r);
}