钱德勒宾和乔伊:C++ 二维指针指向二维数组

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 23:44:13
int a[4][4]={1,2,3,4,2,3,4,5,3,4,5,6,4,5,6,7};
int **s=NULL;
s=&a[0][0];

这个为什么不对

我只想用一个二维指针指向二维数组,应该怎么做,不要动态创建的那种。

不能用二维指针指向二维数组,指向二维数组的指针最后一维必须是确定的。
int a[4][4]={1,2,3,4,2,3,4,5,3,4,5,6,4,5,6,7};
int (*s)[4]; //表明s指向一个n*4的数组
s=a;

还有一种方法是将二维数组看成是一维数组(因为数组在内存中连续存储)
int a[4][4]={1,2,3,4,2,3,4,5,3,4,5,6,4,5,6,7};
int *s;
s=&a[0][0];
这样可以用s[x*y]来表示a[x][y];