二维数组可以用一维表示?
我不知道现在应该去哪儿查,我c++学的很乱。。
代码我只写需要的部分吧 :
int main()
{
int test[4][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}
};
fuck(&test[0][0]);
}
void fuck(int arr[])
{
if(arr[95])
cout<<"everything is ok!";
else cout<<"fuck";
}
函数名随意起的 。。
现在的问题就是 fuck 函数中,arr[95] 运行的结果就是 everything is ok
arr[94] 运行的结果是 fuck
我不知道这个是不是二维数组一维化,我想着arr[15]以后的都应该显示 fuck 的,可是事实不是这样的
帮个忙吧 各位 谢谢了
[解决办法]
补充一下, 当然int func(int array[3][3]) 也可以,但是 考虑到实参形参的问题, 如果array需要传出来, 这种写法就不行了。。。
总而言之, 一维指针还是比较方便。
[解决办法]
数组名代表的是这段数据的起始内存地址, 后面的下标是根据首地址的偏移位置, 溢出由程序员自己控制~_~
[解决办法]
二维数组在内存中也是线性存储的,所以可以按下表随机引用下表对应的值;当然你需要将二维数组的地址返回给一维指针:比如:int *p = &array[0][0];
[解决办法]
对电脑而言只有一维二进制字节数组,对人脑才有二维数组、三维数组、……
[解决办法]