二维数组是不是一维的 指针 数组?

Piggums-avatar

Piggums

二维数组是编译器方便你使用的语法,本质还是一维的。你的行列数都参与指针偏移。
100维数组也只是数组,还是和一维一样的。
数组的指针 是指向数组内元素的
6IX9INE DO CRACK-avatar

6IX9INE DO CRACK

草 我又想起我当时区分指针数组和数组指针的时候了
ΉΛDΣƧ-avatar

ΉΛDΣƧ

Reply to [pid=484105234,25049967,1]Reply[/pid] Post by [uid=6192931]感觉还不错[/uid] (2021-01-10 16:16)
对于多维数组
int a[2][2][2];
Q1是否可以这样定义:int (*p)[2][2];
Q2 a+1==&a[1][0][0]?还是a+1==&a[0][0][0]+1
spaceybog-avatar

spaceybog

我猜是char**被搞糊涂了吧。函数形参中数组会退化成指针,所以初学c的时候char **这个东西真是非常的讨厌。char [2][2]和 char *[2] ={"a.txt" , "b.txt"}。如果调用函数那都是退化成了 char **,比如main函数第二个参数就是后者。第一个参数agrc代表了第二个字符串数组的个数。