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'是一個數組,它不可能分配給一個數組。您只能分配給數組的各個成員(當這些數組本身不是數組時) –