首页 » C语言解惑 » C语言解惑全文在线阅读

《C语言解惑》14.1 基本数据类型的变量初始化

关灯直达底部

对于很短小的程序,确实没必要对使用的变量进行初始化,例如打印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"); }  

虽然其运行结果是一样的,但它模拟的过程与报数的过程是不一样的。由此可见,设计程序时,应该兼顾可读性和合理性。