C语言中二维数组名能否直接赋给指针变量

2025-05-08 00:08:16
推荐回答(5个)
回答1:

二维数组的指针与指针的指针是不一样的。
所以
int **ppr;
int fool[2][3];

ppr = fool;
这样是不行的。
二维数组的指针必须限定第一维的大小。
所以:
int (*ppr)[3];

ppr = fool;
这样才可以。

回答2:

可以,但所声明的指针类型是指向指针的指针如:
int a[3][3];
int** array_ptr=a;

回答3:

可以,二维数组名本身就是表示一个数组的首地址。

回答4:

可以,数组名是数组首元素的地址

回答5:

可以,例如a[],*p=a