ポインター演算に関する試験の改訂問題がありますが、2 つの配列変数のアドレスを減算している部分が意味をなしていません。
1 つの配列は実際にはもう 1 つの配列と同じです。各配列変数の個々の出力を理解しています。この場合、この OS で int = 4 バイトを指定すると、2 つのアドレスの差は 16 になります。
私が理解していないのは、なぜ減算が4になるのかということです.私の論理では、配列内で4つの位置が離れているということですが、これは私には意味がありません.
int main(void)
{
int oddNums[5] = {1, 3, 5, 7, 9};
int *ip = oddNums;
printf("&oddNums[4] %d - ip %d= %d\n",&oddNums[4], ip, &oddNums[4] - ip);
/*prints &oddNums[4] 2686740 - ip 2686724= 4*/
return EXIT_SUCCESS;
}