C言語のループでは同じアドレスが使われている
auです。
今回はC言語のfor文でメモリの振り分けはどうなってるのかと気になったので実際に調べてみました。
#include <stdio.h> int main(void) { int n = 0; for (int i = 0; i < 10; i++) { printf("i = %d &i = %p\n", i, &i); printf("n = %d &n = %p\n", n, &n); n++; } return 0; } // 実行結果 i = 0 &i = 0x7ffff9f92ac4 n = 0 &n = 0x7ffff9f92ac0 i = 1 &i = 0x7ffff9f92ac4 n = 1 &n = 0x7ffff9f92ac0 i = 2 &i = 0x7ffff9f92ac4 n = 2 &n = 0x7ffff9f92ac0 i = 3 &i = 0x7ffff9f92ac4 n = 3 &n = 0x7ffff9f92ac0 i = 4 &i = 0x7ffff9f92ac4 n = 4 &n = 0x7ffff9f92ac0 i = 5 &i = 0x7ffff9f92ac4 n = 5 &n = 0x7ffff9f92ac0 i = 6 &i = 0x7ffff9f92ac4 n = 6 &n = 0x7ffff9f92ac0 i = 7 &i = 0x7ffff9f92ac4 n = 7 &n = 0x7ffff9f92ac0 i = 8 &i = 0x7ffff9f92ac4 n = 8 &n = 0x7ffff9f92ac0 i = 9 &i = 0x7ffff9f92ac4 n = 9 &n = 0x7ffff9f92ac0
アドレスは同じ場所を使っていることが分かりました。