0
当我们有一个多维数组时,我们希望使用指针来指向它的地址。在一本书中,它表示我们将按照以下方式进行操作。将多维阵列的地址复制到指针时的指针尺寸
#include <stdio.h>
int main(){
int a[3][4][5];
int *p[5];
p = a;
return 0;
}
现在,我安静的困惑有以下几点:
- 当我键入的代码转换成克利翁,它给出了一个警告:
Incompatible pointer types 'int[5] *' and 'int[3][4][5]'
,为什么呢? - 为什么指针数组
*p
包含5个变量而不是3个变量? - 如何使用这个指针
*p
?
谢谢。
'P = A;'是非法的代码。你的编译器告诉你这一点。无论如何,编译器生成的任何可执行文件的输出都是未定义的。 –
'p'是一个数组,它不可能分配给一个数组。您只能分配给数组的各个成员(当这些数组本身不是数组时) –