3.2 アドレスを格納する変数

アドレスを格納する変数の使い方を学ぼう。よくわかるC p.78の例題拡張


<例題>
#include <stdio.h>

int main(void) {
    int *p; /* 変数pはアドレス。そのアドレスにはintが格納 */
    int x;

    p = &x; /* pに変数x のアドレスを代入 */
    x = 5; /* 変数xの領域に、5をセット */

    printf("x = %d\n", x);
    printf("p = %p\n", p); /* アドレスを16進数で表示 */

    printf("変数xのアドレス = %p\n", &x);
    printf("pが指すアドレスの実体 = %d\n", *p); /* 参照 */

    *p = 10; /* 代入 */

    printf("x = %d\n", x); /* xの値が変化してしまう */

    return 0;
}

変数xや変数pについて、メモリ上の絵を描いてみよう

<問題>

<コメント>



<例題>
#include <stdio.h>

int main(void) {
    int *p; /* 変数pはアドレス。そのアドレスにはintが格納 */
    int x;

    p = &x; /* pに変数x のアドレスを代入 */
    x = 5; /* 変数xの領域に、5をセット */

    printf("x = %d\n", x);
    printf("p = %p\n", p); /* アドレスを16進数で表示 */

    printf("変数xのアドレス = %p\n", &x);
    printf("pが指すアドレスの実体 = %d\n", *p); /* 参照 */

    *p = 10; /* 代入 */

    printf("x = %d\n", x); /* xの値が変化してしまう */

    *p = 20; /* このあと、いろいろとプリントして確認しよう */

    return 0;
}