2016-11-12 13:28发布
总程序:
#include<iostream>
using namespace std;
int main() {
int a[2][2];
a[0][2]=0;
a[1][0]=3;
cout<<a[1][0]<<" "<<a[0][2];
return 0;
}
输出为什么是3 3
而不是3 0呢?
因为你定义的数组是a[2][2],共有4个元素,a[0][0],a[0][1],a[1][0],a[1][1];
按行优先存储,你的a[0][2]不是合法标识,a[0][2]等同于a[1][0],语句a[0][2]=0;相当于给a[1][0]赋值0, a[1][0]=3等于又给a[1][0]赋值3,输出a[1][0],a[0][2]实际上相当于输出a[1][0],a[1][0],所以是3 3,而不是3 0;如果你把a[0][2]都改成a[0][1],结果就是3 0了。不信你试试。
最多设置5个标签!
因为你定义的数组是a[2][2],共有4个元素,a[0][0],a[0][1],a[1][0],a[1][1];
按行优先存储,你的a[0][2]不是合法标识,a[0][2]等同于a[1][0],语句a[0][2]=0;相当于给a[1][0]赋值0, a[1][0]=3等于又给a[1][0]赋值3,输出a[1][0],a[0][2]实际上相当于输出a[1][0],a[1][0],所以是3 3,而不是3 0;如果你把a[0][2]都改成a[0][1],结果就是3 0了。不信你试试。
一周热门 更多>