不可解な質問があります(少なくとも私にとっては)
整数配列を宣言するとします。
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 バイトです。