C语言 指针 递归调用 怎么搞

C语言 指针 递归调用 怎么搞,第1张

void sort(int p,int m)

{

int s;

s=(p+m-1);

for(;s>p;s--)//这里会覆盖最后一个数据

s=(s-1);

m--;

s=(p+m-1);

if(m>1)

sort(p,m); //递归调用,递归没有起到逆序的作用,递归下去会覆盖很多数据

}

不用递归

void sort(int p,int m)

{

int i,j,temp;

i=0;

j=m-1;

while(i<j)

{

temp=p[j];

p[j]=p[i];

p[i]=temp;

i++;

j--;

}

}

递归程序在于理解执行过程

实际执行过程

main()

{

if (6/2>0)

{

if (3/2>0)

{

printf("%d",1);

}

printf("%d",3);

}

printf("%d",6);

}

所以结果是 1 3 6

在返回之前要先求出fib(5)和fib(4)的值,才能求和,返回结果,也就是再分别调用fib(5)和fib(4),在fib(5)的过程中,因为n>2,所以在fib(5)里还要算fib(4)和fib(3),在fib(4)里还要调用fib(3)和fib(2),直到n<=2才返回结果,返回的时候是一步步地向它的主调函数返回的,直到返回到fib(5)的这一层,这时fib(5)的值就求出来了,fib(4)也经历一遍统同样的过程,才能求出最终的值返回给main();

以上就是关于C语言 指针 递归调用 怎么搞全部的内容,包括:C语言 指针 递归调用 怎么搞、C语言递归调用、求教C语言的函数的递归调用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10100089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存