C语言 函数全局变量和局部变量

C语言 函数全局变量和局部变量,第1张

fun(a+fun(d)); //先里后外嘛

先fun(d) 因为main中没定义d,没局部就取全局的,d=1

fun(int p)

{

static int d=5;

d+=p;

printf("%d ",d);

return(d);

}

所以p = 1

由于fun里有局部静态int d = 5

d += p 就是 5 + 1 = 6

第一次输出就是6了

return(d); 返回6 给 fun(a+fun(d)); 就是 fun(a + 6),a是3 那就是fun(9)

fun(int p)

{

static int d=5;

d+=p;

printf("%d ",d);

return(d);

}

p = 9

d += p 为 6 + 9 = 15(前面说了d是静态int,它保存的值直到程序结束才消除,所以d保存了上面计算的5 + 1 = 6)

第二次输出为15

return(d); 返回15回main

再输出 还是15

结果 6 15 15

C

你定义的时候用static

比如

static int a = 8;

但是定义了static之后就不能改变它的值

要想在函数内部改变它就再定义一个数据,使它等于全局变量

比如

void func(void)

{

int b = a; //这里你得到的肯定是a的最初值

这时候你随便去改变b的值都没关系。a还是a;

}

以上就是关于C语言 函数全局变量和局部变量全部的内容,包括:C语言 函数全局变量和局部变量、c 语言里怎么定义一个全局变量,使其在调用它的每个函数里都是最初的值、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9644639.html

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

发表评论

登录后才能评论

评论列表(0条)

保存