映月读书网 > C语言解惑 > 14.1 基本数据类型的变量初始化 >

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"
); 
}
  

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