もっと正確に理解するには、以下の説明を参照してください。整数の配列のアドレスを保持するポインタの宣言が必要
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
のような宣言が必要です。
*なぜ*最初の要素ではなく*配列*へのポインタが必要ですか(最も一般的な使用例は少なくとも99%です)? –
面接官からの質問です。 –