想不通i为什么不是100,number为什么不是1。关键两个编译器运行的结果还不一样!救救孩子吧!

i和number为什么会变啊

这个地方涉及到操作系统申请内存了。。。

其实是因为你的数组a越界了,按正常情况来看,你的int a[]={0},相当于int a[1]={0},然后的a[1]、a[2]都越界了,然后内存和地址开始往奇奇怪怪的方向去了,你把定义改成int a[3]={0}就会是正常的结果了

定义数组a的代码错误。int  a[]={0};表示数组长度为1,对a[1]赋值导致数组越界,正好修改了i变量的值。