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