auの日記

プログラミング初心者の日記。(auはハンドルネームです)

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

アドレスは同じ場所を使っていることが分かりました。