2017-11-25 204 views
0

要更準確地理解,請參閱下面的說明。需要指針聲明來保存整數數組的地址

int arr[3]; 

現在,用這樣的方式寫一個聲明,xyz = &arr;編譯器不應該拋出警告。

如何聲明xyz

對於下面的代碼,

int main(void) 
{ 

int arr[3]; 
int *p; 
int **pp; 

p = arr; 
pp = &arr; 

return 0; 
} 

WARNING: 
t.c: In function ‘main’: 
t.c:11:4: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types] 
    pp = &arr; 
    ^

目標:需要聲明,使得xyz = &arr,它不應該拋出警告。

+0

*爲什麼*你需要一個指向* array *的指針而不是第一個元素(這是最常見的用例至少有99%)? –

+0

這是一個來自面試官的問題。 –

回答

3

int (*xyz)[3]

指針3個int元件的陣列。

FYI int**int (*)[3]不一樣。

+0

'void * xyz = &arr;'? –

+1

@RingØ.:那可以......但是這需要在某個時刻被分配。接着 ... – coderredoc