C++ポインタの算術演算操作
1246 ワード
short int height[10]; //int (short int 2 )
cout << "height "<< height << endl
<< "height+1 "<< height + 1 << endl
<< "&height[0] " << &height[0] << endl
<< "&height+1 "<< &height + 1<< endl
<< "height+9 "<< height+9 << endl
<< "height+10 " << height + 10 << endl;
結果:
height 0136F900
height+1 0136F902
&height[0] 0136F900
&height+1 0136F914
height+9 0136F912
height+10 0136F914
上&height[0]は配列の最初の要素であるアドレスを取得し、アドレスが1000であると仮定します.&heightは直接配列名を取得し、このときheight全体の配列であるアドレスを取得し、10要素を含むint型配列を指し、アドレス範囲は1000~1018である.heightは&height[0]に等しいことを知っています.height+1はアドレスを2バイト追加します.ただし&height+1はアドレスを10*2バイト増やします.
参考c++菜鳥宿場ノート
C++ポインタ算術演算ノート