看板 C_and_CPP 關於我們 聯絡資訊
#include<iostream> using namespace std; int main(void) { int a[11]={1,2,3,4,5,6,7,8,9,10}; a[11]=-1; for(int i=0;a[i]!=-1;i++)cout<<a[i]<<endl; return 0; } 在下覺得很奇怪 不是應該只會有a[0]~a[10]的陣列嗎? 為什麼我存-1在a[11]的時候編譯還是會過 而且如果在a[10]裡面存入-1的話 程式反而會跑到掛掉 a[11]存入-1反而可以正確的印出陣列裡面的東西 可以的話順便告訴我一下有沒有比較方便的方法可以 直接印出一個型態為int的陣列... 那個迴圈的條件應該要怎麼寫他才會停呢? 我只知道如果型態為char的話是要寫當a[i]!='\0' 想請問一下int有沒有比較常用的條件不用自己手東放東西進去的 懇請哪位大大可以教我一下 感謝 忘記說我用的編譯器是DevC++... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.246.17 ※ 編輯: asdofe 來自: 140.113.246.17 (03/18 21:24)
tiyun:超過陣列大小會不會當要看運氣? 03/18 21:34
MOONRAKER:沒有那種方法。 03/18 21:59
MOONRAKER:簡單的方法是改用vector,不過請先搞清楚陣列再談 03/18 22:00
asdofe:感謝樓上兩位回答 一樓好像是隔壁班的耶XD 03/18 22:35
legnaleurc:真的是陣列的話可以用sizeof(a),轉成指標後免談 03/18 22:40
stonehomelaa:那個陣列不只10byte 會有padding 至於多少看編譯器 03/18 22:49
stonehomelaa:放a[10]怎麼可能掛掉 = = 03/18 22:59
asdofe:好吧掛掉可能是我亂打了什麼= =" 原來是會有緩衝的啊.. 03/19 01:43
asdofe:感謝樓上stone大大跟leg大大...我了解了... 03/19 01:43
stonehomelaa:我那樣寫有點不清楚 應該是那陣列後面有padding 03/19 09:46