求教 C语言 大佬分析一下这个程序

#include <stdio.h>
int f(int x);
main()
{
int n=1,m; 
m=f(f(f(n)));printf("%d\n",m);
}
int f(int x)
{ return x*2;}

求大佬给这段代码打上备注
我看不懂这部分int f(int x); 其中int x 是啥意思?
还有m=f(f(f(n)));这段是怎么个意思?
以及 { return x*2;} 这里……

#include <stdio.h>
//函数声明
int f(int x);
main()
{
int n=1,m;
/*
调用函数f三次,将最后一次调用的返回值赋给m,第2,第3次调用分别用前次调用的返回值作为实参再调用f。
第一次,f(1),返回1*2,等于2,
第二次,f(2),返回2*2,等于4,
第三次,f(4),返回4*2,等于8,
最后,m=8。
*/
m=f(f(f(n)));
//输出m的值8,并换行
printf("%d\n",m);
}
//f函数的定义,返回一个整数,返回的整数是传入的参数x的2倍
int f(int x)
{ return x*2;}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-13
你应该是初学者,这里涉及到C语言的函数和函数调用,建议去学习一下就明白了,我大概说明一下。
int x;是函数f()的参数(形参)。
m=f(f(f(n)));就是f()函数传入的实际参数是n=1。
return x*2;是说函数f()的返回值为x*2,所以m=f(f(f(n)))就相当于((1*2)*2)*2=8。本回答被提问者采纳
第2个回答  2019-07-13

相似回答