成都网站建设设计

将想法与焦点和您一起共享

C语言函数嵌套返回值 c语言的函数嵌套

关于C语言里的函数嵌套调用的问题?

先看

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的龙泉网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

fun(a+

)

里面

fun(d)

d是全局变量

值为1

再看fun(1)

把1传给fun的形参p

进入fun

p

为1

fun内有

局部静态变量d

初值为5

d+=p

使之

变为6

输出d

(局部变量,全局变量名也是b被屏蔽,因此这个d是fun内的局部变量d)

所以输出6

return

返回6

fun(1)返回6

fun(a+6)

a是3

3+6的值9

传给fun的形参p

这是第二次调用fun函数

p为

9

由于d是

静态局部变量

故再次调用fun函数

其中为上一次调用保留的值6

d+=p

使之

变为15

fun函数内

输出

静态局部变量d的值15

fun(9)返回15

返回的15给main函数的printf输出

有输出15

所以是

61515

c语言函数的嵌套调用

#define K 4 定义K为常量4

#define N 5 定义N为常量4(注意K、N均为大写,不同于下面的小写k、n)

long f1(int n,int k) 定义函数f1,形参为n,k

{ long power=n; 初始化变量power赋值为n

int i; 定义变量i

for(i=1;ik;i++) power *= n; 此用了一个for循环,i的值从1到k-1(因为ik,不是i=k),power*=n就是power=power*n的意思,于是每循环一次,power就乘一次n,于是f1函数指的是n的k次方。(因为power本身为n,然后又循环k-1次)

return power; 返回power值,就是n的k次方。

}

long f2(int n,int k) 定义函数f1,形参为n,k

{ long sum=0; 初始化变量sum赋值为0

int i; 定义变量i

for(i=1;i=n;i++) sum += f1(i, k); 此用了一个for循环,i的值从1到n,然后用调用了f1函数,这样意思为sum=0+f1(1,k)+f1(2,k)+f1(3,k)+……f1(n,k)

return sum; 返回sum值f1(1,k)+f1(2,k)+f1(3,k)+……f1(n,k)

}

main函数,我就不解释了哈!

有什么不懂,发百度消息给我,再探讨,呵呵!共同学习

C语言函数嵌套问题~

在C语言中,所有的函数定义,包括主函数main在内,都是平行的。也就是说,在一个函数的函数体内, 不能再定义另一个函数, 即不能嵌套定义.

在例子中,没有嵌套定义的.

int max(int a,int b)

{

if(ab)return a;

else return b;

}//这是在定义max

而main()函数中,

void main()

{

int max(int a,int b);//这是声明,被调用函数,定义在main函数前,可以省略.

int x,y,z;

printf("input two numbers:\n");

scanf("%d%d",x,y);

z=max(x,y);//这是调用.

printf("maxmum=%d",z);

}

所以不矛盾..


当前标题:C语言函数嵌套返回值 c语言的函数嵌套
当前路径:http://chengdu.cdxwcx.cn/article/dosgohc.html