全局变量(外部变量)
初始化时只能用常量表达式(Constant Expr
ession)
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;
}运行结果:
修改main函数后
int mian()
{
foo();
printf("Huh?");
foo();
return 0;
}
运行结果:
上面两种不同的运行结果说明了什么?
局部变量在每一次调用前分配空间,在函数返回时被清理。
局部变量未被初始化时,它的初值“不确定”。这是一个充分条件。