C语言中,在一个a函数中如何调用另一个b函数中的静态变量值;

如果是设置全局变量或者是在a函数的参数中传入静态变量值的方法,请高抬贵指,我想要其他的思路;
void a ()
{
static int b=0;
//return b;这种方法也可,但是我想看看是否有其他思路
}
void b ()
{
int c=b;//怎样在这里调用b的值
}
补充下,那个b和函数b,我没有区分,羞死人了

用指针

其实你可能把问题想多了,全局更好用
你可以想想,如果a结束了,那么变量b即使是静态,好像也会被释放掉吧,怎么再利用???
在不同文件中,好像不是全局的,也会在a函数结束后,他内部定义的变量也会给释放掉吧
这是变量的生命周期导致的,好像没有办法给变吧追问

C语言中的在函数中的静态变量,在函数执行完毕后也是存在的,可在书中看看,是这样的

追答

因为静态很少用到,所以关心的少,不好意思
当我没有回答,呵呵

追问

谢谢啊,你参加工作了吧?

追答

工作多年,最近在弄vc的程序
编写程序,在没有特殊要求的情况下,还是思路简单一些的好

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-01
C语言中,要在一个a函数中调用另一个b函数中的静态变量值,需要将b函数设为公共函数。
第2个回答  2013-09-01
你可以吧函数a设为 int a(){int b=0;return b;}
然后在另一个函数中int c=a();就行了,希望接纳!
第3个回答  2013-09-01

static int b=0;

提到函数 a() 外面。

第4个回答  2021-05-11
我也遇到这个问题,实际上是两个函数共享一个作用域,在其他语言中,在a函数中定义b函数,这样b就可以公用a中的定义变量,但在C语言中如何实现,还没解决。

请问C语言怎么在主函数中获取其它函数中的静态变量的值,不允许定义全局...
include <stdio.h>void func(int **p2p);int main(void) {int *p;func(&p);printf("%d\\n",*p);return 0;}void func(int **p2p){static int a=123;*p2p=&a;}

C语言如何调用函数
可以不用声明void main(){int a=1, b=2, c;c = fun(a, b); \/\/ 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值}\/\/ 自定义函数funint fun(int x, int y) \/\/ 函数首部{ \/\/ {}中的语言为函数体return x>y ?

在C语言中,在一个子函数中定义的static型变量可以应用在其他函数中么...
这个变量名在外面是无法被访问的,编译器不许,但是,你想办法把这个变量的地址给传出去后,你可以通过这个地址来访问这个变量的值,因为它是全局生存周期的

c语言一个void的数值值能不能在另一个void里面用
想要在函数之间使用同一变量,C语言有三种用法:1、全局变量,定义在主函数外部,此变量在所有函数都是可见的,操作这些变量都会在反映出来;2、静态变量,加上static 修饰的变量,由于是静态的,在变量的地址可以确定下来不变动,跟全局变量功能差不多。3、指针传递变量;指针是变量的地址,变量可通过参数...

请问C语言中的静态变量怎么用?
静态外部变量只限于本文件范围内有效,不能被其他文件引用。静态局部变量只能被定义变量所在的函数引用,且每次调用此函数结束时静态局部变量值保留,作为下次调用此函数时该变量的初值。C基础很重要,请认真研读

c语言中静态变量是怎么用的
就是全局变量啊,比如如果需要计数然后那个函数需要一次次的被重新利用,那就需要静态变量了啊,静态变量不会因为局部函数被清空而清空而是会一直被保留

c语言中静态变量与动态变量的不同?
动态变量在每次函数调用之后会把变量销毁,下次调用时就是另一个了。静态的不会销毁,下次调用时还是那个。比如:void a(){ static int i=0;i++;} void b(){ int i=0;i++;} 这个你调用两次a i就变成2了 不管你调用多少次b i都是1....

C语言中,在同一个函数下局部变量和局部静态变量可以同名吗?
不可以,同一作用域的变量名不允许相同, 不同作用域下的同名变量起作用的是最后一层。

C语言:各函数内部定义的静态局部变量可否同名
可以。静态变量一旦被定义,内存中分配给该变量的空间不会被释放,直到掉电。但这和变量名相同与否是两个概念,变量名只是内存空间的一个名称或者指示指针而已。如果两个同名的静态变量在两个不同的函数内部被定义,内存分配时地址指针并不同,所有不会冲突。函数内部定义的静态变量在应用时需要注意一个...

c语言中静态变量是怎么用的
b=b+1;\/\/b为自动变量,则b一直等于1 c=c+1;\/\/c为静态局部变量,则c随着for循环分别为4,5,6 return(a+b+c);} 所以运行的结果为:7,8,9 注:静态局部变量(静态变量)是在编译时赋初值的,即值赋初值一次,在程序运行时它已有初值,以后每次调用函数式不在重复赋初值而只在保留商城函数...

相似回答