さまざまなコンパイラで何度も試しましたが、同じ結果が得られました。私の質問は:
C++ では、int a[10];
の宣言として与えられるとa
、a[0]
と0[a]
は同じ意味になります。私は次のように主張します。
cout << a[0];
と同じです
cout << 0[a];
が整数である C++a[i]
と同じ理由を説明してください。i[a]
i
さまざまなコンパイラで何度も試しましたが、同じ結果が得られました。私の質問は:
C++ では、int a[10];
の宣言として与えられるとa
、a[0]
と0[a]
は同じ意味になります。私は次のように主張します。
cout << a[0];
と同じです
cout << 0[a];
が整数である C++a[i]
と同じ理由を説明してください。i[a]
i
配列インデックス操作は内部的に として解釈されるため*(a+i)
です。
配列を宣言するとしましょう。配列がメモリ内にある場所の先頭にあるメモリ アドレスを表し、インデックスをそのメモリ アドレスからのオフセットと考えることができますint a[10];
。a
したがって、インデックス操作を配列に適用すると、値は次のように定義されます。a[i] = *(a+i)
加算の可換プロパティによってa[0] = 0[a]
、インデックス操作が言語によってどのように定義されているかがわかります。