看了不少书,但都是看完了就忘。所以想还是碰到问题看书,再总结自己写下来。这样或许能记得更劳一些。新手勿拍。
在变量声明的同时给予初值,即为变量的初始化。
格式为:类型 变量名 = 初始值。
The C Programming Language中有这样一句话:If the name is followed by an equals sign and an
expression, the expression serves as an initializer, as in
char esc = '\\';
int i = 0;
int limit = MAXLINE+1;
float eps = 1.0e-5;
由此可见,初始值不仅可为常量,也可以是表达式或者一个同类型的变量。
对于全局变量或者静态变量,只在程序执行之前初始化一次,缺省初始值为0。
对于局部变量,在程序进入它所在的函数或块时都可被重新初始化。其缺省初始值没有定义。
int a;
void main()
{
static int b;
int c;
printf("a:%d\nb:%d\nc:%d\n",a,b,c);
}
vc6.0测试结果为:a:0
b:0
c: -858993460
而在vs2008中测试运行时,会提示错误:Run-Time Check Failure #3-The variable 'c' is being used without being initialized.
由此可知vs2008强制要求局部变量进行初始化。这样可避免因忘记初始化对后续程序造成影响(个人观点)。