熟C語言的朋友請進





cpthk
2005-04-26, 03:49 PM
請問c語言char buff[SIZE];和char buff[SIZE]="";差別在哪?

感激~




琥珀
2005-04-26, 09:07 PM
char buff[SIZE]=""; 宣告了這個 buff 陣列,內容為空。
char buff[SIZE]; 宣告了這個 buff 陣列。試著把內容印出來,結果可能是亂碼。

char buff[SIZE]=""; 和 char buff[SIZE]={'\0'}; 應該是相同的意思吧?

dou0228
2005-04-26, 11:20 PM
char buff[SIZE]; 是宣告
char buff[SIZE]=""; 是定義

timas
2005-04-27, 01:24 AM
一個是配置空間 一個是配置空間 並有初始值

cpthk
2005-04-27, 01:33 AM
一個是配置空間 一個是配置空間 並有初始值

那沒有初始值的那個, 如果被詢問值的時候, 會顯示0還是沒有呢?

櫻桃小丸子
2005-04-27, 01:49 AM
那沒有初始值的那個, 如果被詢問值的時候, 會顯示0還是沒有呢?

會丟出 Exception 吧...

timas
2005-04-27, 02:28 AM
那沒有初始值的那個, 如果被詢問值的時候, 會顯示0還是沒有呢?

好比你到任意的教室用黑板 黑板原先會留下些什麼東西在上頭 你不能預知
所以你必須先擦掉黑板 寫上你的內容 這時的內容才有意義

沒有初始值的話 在給定一個值之前 是不應該去使用的 不然這算是程式的BUG
既然未定值 那真的是未知 如果剛好是你要的 也僅是純屬巧合 純脆看他在載入時 對應到的記憶體原本放了些什麼東西
有的Compiler可以設定全填為0

cpthk
2005-04-27, 05:58 AM
我用dev c++編譯, 兩個方式出來的檔案不同, 但是都可以正常執行, 用debugger看組合語言有發現不同~