對於很短小的程序,確實沒必要對使用的變量進行初始化,例如打印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" ); }
雖然其運行結果是一樣的,但它模擬的過程與報數的過程是不一樣的。由此可見,設計程序時,應該兼顧可讀性和合理性。