C 言語におけるポインタのポインタ

CCBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

C 言語のプログラミングでは、ポインタは他の変数のメモリアドレスを格納するために使用されます。同様に、ポインタのポインタは、別のポインタ変数のメモリアドレスを格納する変数です。この実験では、ポインタのポインタを扱う C プログラムを書く方法を学びます。

必要な変数を宣言する

このステップでは、3 つの変数 var*ptr**pptr を宣言します。

int var;
int *ptr;
int **pptr;

変数 var に値を代入する

このステップでは、変数 var に値を代入します。

var = 50;

ポインタ ptrvar のアドレスを代入する

このステップでは、変数 var のアドレスをポインタ ptr に代入します。

ptr = &var;

ポインタのポインタ pptrptr のアドレスを代入する

次に、ポインタ ptr のアドレスをポインタのポインタ変数 pptr に代入します。

pptr = &ptr;

pptr を使って値にアクセスする

最後に、ポインタのポインタ変数 pptr を使って var の値にアクセスします。

printf("\nValue of var = %d\n", var);
printf("\nValue available at *ptr = %d\n", *ptr);
printf("\nValue available at **pptr = %d\n", **pptr);

最初の printf 文は、変数 var の値を表示します。

2 番目の printf 文は、ptr に格納されているメモリアドレスにある値を表示します。これは var の値でなければなりません。

3 番目の printf は、pptr に格納されているメモリアドレスにある値を表示します。これは ptr の値でなければなりません。そして、2 回参照を解除して var の値を取得します。

main.c に完全なコードを記述する

これまで様々なステップを経てきましたので、main.cmain 関数にコードをまとめることができます。

#include <stdio.h>

int main()
{
    int var;
    int *ptr;
    int **pptr;

    var = 50;

    ptr = &var;

    pptr = &ptr;

    printf("Value of var = %d\n", var);
    printf("Value available at *ptr = %d\n", *ptr);
    printf("Value available at **pptr = %d\n", **pptr);

    return 0;
}

まとめ

この手順に沿った実験では、ポインタのポインタを扱う C プログラムを書く方法を学びました。必要な変数を宣言し、変数に値を代入し、変数のアドレスをポインタに代入し、ポインタのアドレスをポインタのポインタに代入し、最後にポインタのポインタを使って変数の値にアクセスしました。ポインタのポインタに精通することは、C プログラミングを学ぶ上で重要な第一歩です。