C: 局部变量、全局变量初始化问题

来源:互联网 发布:小区信息发布查询软件 编辑:程序博客网 时间:2024/05/23 05:07

全局变量(外部变量)


初始化时只能用常量表达式(Constant Expression)
double pi =3.14+0.0016;//Right 该值可在编译时算出

double pi=acos(-1.0);//Wrong  只能在运行时通过调用acos函数算出。

int minute=120;
int hour=minute / 60;
/* minute / 60 不是常量表达式 */



------------------------------------------------------------------------------

局部变量
//local_variable.c
#include<stdio.h>
void foo()
{
    int i;
    printf("%i\n",i);
    i=2222;
}
int main()
{
    foo();

foo();
    return 0;
}

运行结果:

C: 局部变量、全局变量初始化问题 - itbuddy - BackGarden::ItBuddy
 

修改main函数后

int mian()

{

foo();

printf("Huh?");

foo();

return 0;

}

运行结果:

C: 局部变量、全局变量初始化问题 - itbuddy - BackGarden::ItBuddy


上面两种不同的运行结果说明了什么?

局部变量在每一次调用前分配空间,在函数返回时被清理。

局部变量未被初始化时,它的初值“不确定”。这是一个充分条件。




0 0