#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表示每行有两个元素的意思。
温馨提示:答案为网友推荐,仅供参考