2017-05-08 15 views
1

通常、C++では、配列をたどるときにカウントアップしてインデックスを使用します。しかし、私はなぜインデックスとしても配列を使用して動作するのだろうかと思います。 例えば、配列と配列をインデックスとして使用する

#include <iostream> 
using namespace std; 

int main() { 
    int a[] = {5,7,3,2,0}; 
    int i = 0; 
    for(i = 0; i <5; i++) 
    { 
     cout<<i[a]<<"\n"; 
    } 
    return 0; 
} 

出力は、[I]を使用した場合と同じであろう。どうしてこれなの?

+4

組み込み型の場合、 'X [Y]'は '*(X + Y)'を意味し、 '+'は可換性です –

答えて

-2

C++では、[]演算子は実際に加算を行うことになります。

ですから、書くとき: [i]は

をコンパイラが見ている: *(A + I)

逆に、あなたが書いたとき、私は[A]、コンパイラは見ています:*( i + a)。

+7

いいえ、配列はポインタではありません。 – juanchopanza

+0

最初の要素へのポインタです。 –

+1

[私はちょうどこれをここに残す](http://stackoverflow.com/questions/4810664/how-do-i-use-arrays-in-c/4810668) – JGroven

関連する問題