C 語言問題

來源: brakepad 2008-10-31 11:23:16 [] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (367 bytes)
#include
#include
void f(n){
int a[n];
a[n]=12;
printf("%d\n",a[-1]);
return;
}


int main(){
f(5.5);
return 0;
}

gcc居然編譯通過。怎麽回事。請高手指點
gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Target: x86_64-linux-gnu。
Thread model: posix

所有跟帖: 

粘貼錯誤 -brakepad- 給 brakepad 發送悄悄話 (174 bytes) () 10/31/2008 postreply 12:58:57

頭文件 顯示不出來 -brakepad- 給 brakepad 發送悄悄話 (0 bytes) () 10/31/2008 postreply 13:00:10

當然通過,浮點數cast到整數 -1就是18446744073709551615 -tty- 給 tty 發送悄悄話 tty 的博客首頁 (0 bytes) () 10/31/2008 postreply 14:23:11

-1是4294967295 如果用32位整數 -tty- 給 tty 發送悄悄話 tty 的博客首頁 (0 bytes) () 10/31/2008 postreply 14:29:52

回複:當然通過,浮點數cast到整數 -1就是18446744073709551615 -brakepad- 給 brakepad 發送悄悄話 (49 bytes) () 10/31/2008 postreply 17:24:40

在C裏,不聲明類型就默認是整數 變量數組是C99的新玩藝 -tty- 給 tty 發送悄悄話 tty 的博客首頁 (0 bytes) () 10/31/2008 postreply 17:58:34

"不聲明類型就默認是整數" 是某個版本的新東西,還是一直是這麽定義的 -brakepad- 給 brakepad 發送悄悄話 (0 bytes) () 10/31/2008 postreply 18:29:26

一直這樣定義的 -tty- 給 tty 發送悄悄話 tty 的博客首頁 (0 bytes) () 10/31/2008 postreply 21:03:49

回複:在C裏,不聲明類型就默認是整數 變量數組是C99的新玩藝 -tty- 給 tty 發送悄悄話 (56 bytes) () 10/31/2008 postreply 18:48:48

你還不如用:“踢踢歪” -奉旨灌水- 給 奉旨灌水 發送悄悄話 奉旨灌水 的博客首頁 (15 bytes) () 10/31/2008 postreply 19:16:29

7~tty_write_message(tty, ": warning, "); 還有 (圖) -tty- 給 tty 發送悄悄話 (148 bytes) () 10/31/2008 postreply 22:38:26

請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”