对于很短小的程序,确实没必要对使用的变量进行初始化,例如打印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" ); }
虽然其运行结果是一样的,但它模拟的过程与报数的过程是不一样的。由此可见,设计程序时,应该兼顾可读性和合理性。