对于很短小的程序,确实没必要对使用的变量进行初始化,例如打印26个英文小写字母的程序:
int i=0
;
for
(i=0
; i<26
; i++
)
printf
("%c"
, 97+i
);
在这个程序中,可能觉得声明“int i=0;”没有价值,但习惯是养成的,如果一开始就养成初始化的好习惯,则是有百利而无一害。
另外,变量都有初始值,也有利于查错。
建议养成对使用的基本数据类型的变量都进行初始化,这样就会避免漏掉对指针进行初始化。例如:
int a
,b
, *p
;
p=&b
;
变量b没有初始化,指针的赋值也就出错了。如果使用
int a=0
, b=0
, *p
;
p=&b
;
至少避免了这个错误。以后b值变化,*p也会随之变化。
因为基本数据类型的初始化简单,所以不再赘述。这里只是提醒一下,有时为了提高程序的可读性,常在程序计算入口将变量再次赋初值。例如,要编写一个演示报数的程序,假设是12个人,在下面的程序中,第2个赋值的含义是强调报数前的状态,提高易读性。
【例14.1】变量初始化与赋值。
#include <stdio.h>
void main
()
{
int counter=0
; //
变量初始化
printf
("
报数:"
);
counter=0
; //
变量赋值提高程序可读性
while
(counter<12
){
counter++
;
printf
("%d "
,counter
);
}
printf
("\n"
);
}
程序运行结果如下:
报数:1 2 3 4 5 6 7 8 9 10 11 12
其实,不仅要保证编程运行正确,还应该使其模拟的过程接近实际过程,例如将它改为如下程序:
#include <stdio.h>
void main
()
{
int counter=0
; //
变量初始化
printf
("
报数:"
);
counter=1
; //
变量赋值
while
(counter<=12
){
printf
("%d"
,counter
);
counter++
;
}
printf
("\n"
);
}
虽然其运行结果是一样的,但它模拟的过程与报数的过程是不一样的。由此可见,设计程序时,应该兼顾可读性和合理性。