解释这个程序
我好菜,这个都做不起~~~#include"stdio.h"
main()
{
int j=0,a[5],i=123456;
while(i)
{
a[j]=i%10;
i/=10;
j++;
}
for(j=0;j<6;j++)
printf("%d\n",a[j]);
}
这个的编译结果竟然是
6
5
4
3
2
5
为什么啊??请大家解释一下。
[此贴子已经被作者于2007-11-1 15:55:11编辑过]
[此贴子已经被作者于2007-11-1 15:55:11编辑过]
虽然数组元素少了,应为a[6]。
但是程序原封不动,小弟在dev-c++上运行都不报错的,而且运行结果都对的。
有没高手解释一下啊
在TC里,这个I溢出了,为-1761,因为TC的编释系统INT型为-32768->32767
而在C_FREE 里可以的,输出为
6
5
4
3
2
1
因为C_FREE里一个INT型为4个字节
也许是编辑器的问题吧