C ++では、配列名は実際には配列の最初の要素への定数ポインターです。
配列に関するブログ(C ++ 1次元配列)で述べたように、配列はメモリ内の線形構造です。バドミントンチューブ(バドミントンが入っている長い箱)があると想像できます。内部に最大5つのバドミントンがあり、開いた端が最後であると仮定します。次に、このモデルを配列と考えることができます。配列のサイズは5です(これ以上収まらない)。
配列を宣言するとします:
INTのリスト[ 6 ] = { 11、12、13、14、15、16 }。
次に、この配列がメモリに格納される方法は次のとおりです。
ポインタを使用して、次のような配列の値にアクセスできます。
C ++は、ポインターが整数を加算または減算できるようにします。これは、ポインターに含まれるアドレスが増減することを示し、変更の量は整数のサイズ*メモリ空間に割り当てられたポインター型です
上記の例のように、リスト配列はint型であり、ポインターリストはint *型です。これは、intの型がメモリ内で4ビットを占めるため、list + 1はアドレスが4増えることを意味します。つまり、listで表されるアドレスは10で、list + 1で表されるアドレスは10 + sizeof(int)= 14です。