大約是很久很久以前吧,編碼風格建議給局部在聲明的時候就賦一個初始化的值。好像這樣...
void foo(){ char* bar = NULL; /* some other code */ bar = getXXX(); /* code to use bar */ };
理由是,如果你忘記在使用這個變量前給他賦值了,那么有一個默認的值可以讓你的程序"安全"一點。
不過現在我覺得好的編碼風格是不要給局部變量賦這個初始化值,因為現在的編譯器已經變得聰明了,如果引用一個未初始化得局部變量,編譯器會報出一個警告。
如果你真的忘記了寫 bar = getXXX();這一行,那么這個錯誤會在編譯的時候就被抓到。
反而,給這樣的局部變量賦初始化值是一種不好的編程習慣了。假設寫了= NULL;然后你真的真的忘記寫bar = getXXX();了,編譯器不會抓住這個bug. 只有等到運行這個程序的時候才能發現這個問題,或者更糟糕的是這個bug變成一個隱藏很深的東西.