#include <iostream>
using namespace std;
void e(int a[],int b[],int c[],int d)
{
for (int i=d-1;i>=0;i--)
{
a[i]=2;
b[i]=3;
c[i]=4;
}
for (int j=0;j<d;j++)
{
cout<<a[j]<<" ";
cout<<b[j]<<" ";
cout<<c[j]<<" ";
}
}
int main(){
int a[3]={1,2,3};
int b[3]={3,4,5};
int c[3]={5,6,7};
e(a, b, c, 5);
}
输出 2 3 4 2 3 4 2 3 4 2 2 3 2 2 3 而不是五个2 3 4
为什么out of index 输出会自动变,但有时候可以顺利定义a[i]=j 即使out of index
你不都是越界么。应该是这三个数组在内存空间是连续的,你越界访问时,会越界修改了其它数组里的元素值
①为什么out of index 输出会自动变?
因为越界了,就是非所开辟空间内的内容,每次输出就会变一次,因为越界的内容无法保证准确性。
②但有时候可以顺利定义a[i]=j 即使out of index
能够顺利定义,同时数组越界不代表这样定义就是对的。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!希望对题主有所帮助!可以的话,帮忙点个采纳!