通过一维数组访问二维数组是什么意思?

如题所述

#include <stdio.h>
int main(void)
{
int x[2][2] = {{1,2},{3,4}};
int * y = (int *) x;
int i = 0;
for(i = 0; i < 2 * 2; i++) printf("%d\t", y[i]);
return 0;
}
看明白了吗?输出结果是:1 2 3 4
因为二维数组在内存上是按照逐行顺序排列的,所以也可以看成是一维数组
在上面程序中,如果用x[i][j]表达一个二维数组的元素,那么这个元素也可以用y[i + j * 2]表示,是一个作用,其中2表示每行有两个元素的意思。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-13
如果数据规模是固定的,比如20个,用二维数组是5*4的,用一维数组,a[1]代表a[1,1],a[2]代表a[1,2],a[6]代表a[2,1]
这样说能明白么、求采纳。
第2个回答  2010-06-19
数据结构,二维数组可以放到一维数组中,具体翻下书!
相似回答