作者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