回 帖 发 新 帖 刷新版面

主题:请大家帮帮我,先谢谢额

#include <iostream>
using namespace std;
void main()
{
    int a[5]={1,2,3,4,5};
    int b[5];
    int i;
    b[5]=a[5];
    for(i=0;i<5;i++)
    {
    //    b[i]=a[i];
//        cout<<endl<<b[i]<<endl;
         cout<<a[i]<<endl;
    }
}
请大家帮我解释下图片中圈中的信息。先谢谢了

回复列表 (共3个回复)

沙发


b[5]=a[5]; 看不出a[5],b[5]已经越界了吗?

[color=FFFFFF]
最可恶是
int i;
……
for(i=0;i<5;i++)
为什么不写成正常的
for(int i=0;i<5;++i)?
别跟我说二十多年的C标准规定只能这么写,因为现在不是十年前了,而且你用的还是C++。

void main就不说了,这种东西害人害己
[/color]

板凳


b[5]=a[5];  ??
莫非LZ想要直接复制数组?数组不能直接复制,而且楼上说的很清楚明了,越界了。。。

3 楼

楼主程序运行时内存排列如下:
??
a[4]
a[3]
a[2]
a[1]
a[0] <==> b[5]
b[4]
b[3]
b[2]
b[1]
b[0]
则执行:
b[5]=a[5];
时,相当于
a[0]=a[5];
而a[5]空间是未定义的。。。
结果~~~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册