c语言问题,请问为何外部函数s未赋初值,程序无问题且系统自动为其初始化为 0 。s不是应该是个随机数吗?

写出程序的运行结果。

#include <stdio.h>

int s;

int fun(int n)

{

static int s=1;

s*=n;

return s;

}

int main()

{

int n=1;

for ( ;n<=4;n++)

{

s+=fun;

printf("%d,%d\t",n,s);

}

return 0;

}

S在外部生命,是分配在堆上的变量,默认初始为0,如果把S生命在main里面那就是在栈上的变量,如果不初始化,其值才是随即的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-20
全局变量不同于局部变量,会自动初始化为0的
相似回答