有关于c语言中函数调用问题

这个函数调用过程中,当*a==0后,fun函数的自身调用不是应该停止了吗?怎么还会返回来调用上一次的函数fun,然后再逆序输出*a中的值?这个地方不太明白,希望大家能指点下我

递归调用不理解?
上次调用还没结束啊,结束的只是本次调用追问

幻形大侠,上次调用,和本次调用分别指的时什么啊?能举个例子说下吗?

追答void fun(char* a)
{
    if(*a)
    {
        fun(a+1); // 此处递归调用,立即执行。下面那句代码要等fun(a+1)执行完了回来再执行
        printf("%c",*a);
    }
}

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中函数可以调用函数吗?
可以调用。C语言最基本的模块为函数,任意函数都可以调用其它任意一个函数,包括函数本身。1、自定义函数调用其它自定义函数的例子:include <stdio.h>void fun1(int a)\/\/自定义函数fun1。{ printf("%d\\n",a);}void fun2(int m, int n)\/\/自定义函数fun2。{ fun1(m); fun1(n)...

C语言中函数的调用有哪些步骤?
long p=1;初始化。p *= m;初始化。long s = 0;累加。s += power(i,k);累乘计算。这类题弄清楚每个函数做什么,涉及哪些量,和函数之间的调用关系。初始化、循环计算、返回结果是最常见的3个步骤,其中第2步可以是基本运算,也可以是调用其它函数完成某个功能。

为什么我的C语言程序在调用函数时出现错误?
1、一般是你在调用函数的时候传递的是int类型的数据,但那个函数定义的参数类型不是int(比如是结构或者指针或者数组)。2、下面为C语言的错误大全及中文解释:1: Ambiguous operators need parentheses — 不明确的运算需要用括号括起2: Ambiguous symbol xxx — 不明确的符号3: Argument list syntax error — 参数表...

C语言中函数调用问题
首先我们来说一下,你这个程序是有很大的问题的。函数有且只有唯一一个返回值,当程序执行到return的时候,这个函数就结束并返回了。所以,你这里写2个return来返回最大值和最小值是不可能的。再者,如果你想使用返回值作为最大值,最小值的传递,那么在main函数中,你调用star函数的时候需要一个变量...

如何定义和调用c语言的函数
例如,我们可以定义一个简单的函数来计算两个整数的和:c int add { return a + b;} 在这个例子中,`int`是返回类型,`add`是函数名,`int a`和`int b`是参数。接下来,我们讨论如何调用C语言中的函数。函数调用是通过使用函数名并传递必要的参数来完成的。在上面的例子中,我们可以通过以下...

c语言中怎么调用函数?谢谢
C语言中,函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。include<stdio.h>int fun(int x, int y); \/\/ 函数声明,如果函数写在被调用处之前,可以不用声明void main(){int a=1...

关于c语言 在c中调用函数时,只能把实参的值传递给形参,形参的值不能...
不对,在C语言中,传值有地址传值和参数传值,参数传值只能将实参传值给形参,所以A选项正确。C语言中的外部变量是可以在函数之间传递数据的。C语言中的自动变量是默认的变量,实际上是函数中的局部变量,所以D选项正确。全局变量一经定义都是需要分配内存单元,在程序运行过程中自始至终都会占用固定的...

函数调用不成功是什么原因?(C语言)
函数调用了,是你写的有问题。比如你第一次调用 swap(n1,n2),这个时候程序把n1,n2的值传给p1,p2,然后p1,p2的值交换了,但是你需要的n1,n2没有变化。你改成void swap(int &n1,int &n2),引用就可以了

c语言中怎么调用函数
1、直接调用,这种函数一般没有返回值,或者不需要返回值 如 printf("你好,可以直接调用printf函数的!")2、表达式调用,比如对于用户写的一个求最大值函数int max(int a,int b),一般有返回值 如 c=max(6,9) 也就是要用一个量来接收函数返回来的值。3、参数调用,同样对于上面的max 如...

关于c语言子函数调用的问题,下面的程序有什么问题?
如果你想达到交换的目的,那么要用指针:A (int *a, int *b){ int t;if (*a > *b){ t = *a; *a = *b; *b = t; } } 函数调用 改成:A (&a, &b);A (&a, &c);...A (&c, &d);--- 程序有无问题,与程序的任务有关。

相似回答