-3

たとえば、配列を定義します。

int a[5];

a = &a[0];

配列の先頭へのアドレスです。

私の質問は、aポインター変数のようにメモリ内のどこかに格納されるのですか? もしそうなら、a( &a) のアドレスを出力しようとすると、なぜ と同じ値になるのaですか?

4

1 に答える 1

1

配列を宣言すると、取り除かれる唯一のストレージは配列要素自体です。最初の要素へのポインター用に確保されるストレージはありません。

sizeofor演算子のオペランドではない配列式&、または宣言で別の配列を初期化するために使用されている文字列リテラルではない配列式をコンパイラが検出すると、コンパイラはその配列式をポインタ式に変換し、ポインター式は、配列内の最初の要素のアドレスになります。

于 2015-08-28T19:02:33.723 に答える