不可解な質問があります(少なくとも私にとっては)
整数配列を宣言するとします。
int arr[3];
概念的には、コンパイル時に 3 つの連続する整数を格納するために 12 バイトがメモリに割り当てられるということですよね。(ここにイラストがあります)
図に基づいて、サンプルアドレス
arr[0]
は1000
、
arr[1]
であり1004
、
arr[2]
です1008
。
私の質問は:
と のアドレスの差を出力するarr[0]
とarr[1]
:
std::cout << &arr[1] - &arr[0] << std::endl;
を得る代わりに4
、
私は驚くほど得1
ます。
なぜその出力になったのか、誰か説明できますか?
PS: 私のコンピューターでは、int は 4 バイトです。