作者asdofe (雞)
看板C_and_CPP
標題[問題] 關於陣列的簡單問題
時間Wed Mar 18 21:22:30 2009
#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)
1F:→ tiyun:超過陣列大小會不會當要看運氣? 03/18 21:34
2F:→ MOONRAKER:沒有那種方法。 03/18 21:59
3F:→ MOONRAKER:簡單的方法是改用vector,不過請先搞清楚陣列再談 03/18 22:00
4F:→ asdofe:感謝樓上兩位回答 一樓好像是隔壁班的耶XD 03/18 22:35
5F:→ legnaleurc:真的是陣列的話可以用sizeof(a),轉成指標後免談 03/18 22:40
6F:推 stonehomelaa:那個陣列不只10byte 會有padding 至於多少看編譯器 03/18 22:49
7F:推 stonehomelaa:放a[10]怎麼可能掛掉 = = 03/18 22:59
8F:→ asdofe:好吧掛掉可能是我亂打了什麼= =" 原來是會有緩衝的啊.. 03/19 01:43
9F:→ asdofe:感謝樓上stone大大跟leg大大...我了解了... 03/19 01:43
10F:推 stonehomelaa:我那樣寫有點不清楚 應該是那陣列後面有padding 03/19 09:46