p
指定されたステートメントで ポインターを初期化している間
int a[10], *p;
p = &a[0];
の型が&a[0]
isなのpointer to int
か is itなのint
か疑問です。
これを読んだ後、私はこの混乱に陥りました:
配列の最初の要素へのポインターとして使用
a
して、 a[0]: を変更できます*a = 7;
。
注: の型を知りたいです&a[0]
。
&
はアドレス演算子なので、&a[0]
は配列の最初の要素のアドレスを取得するa
ため、int *
. 次のように読むことができるよりも優先順位[]
が高いため:*
&(a[0])
これはより明確かもしれません。あなたが持っている場合:
p = a ;
ポインターに減衰する配列に対して動作します。
のアドレスはa[0]
、整数へのポインタ型です。*a
は と同等で*(a + 0)
あるため、配列の最初の要素を変更できますa[0]
。