讀古今文學網 > 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"
); 
}
  

雖然其運行結果是一樣的,但它模擬的過程與報數的過程是不一樣的。由此可見,設計程序時,應該兼顧可讀性和合理性。