Cポインタの紹介

Cポインタの紹介

ポインタは、の最も紛らわしい/挑戦的な部分の1つですC、 私の考えでは。特にプログラミングに不慣れな場合だけでなく、PythonやJavaScriptなどの高級プログラミング言語を使用している場合も同様です。

この投稿では、可能な限りシンプルでありながら、落ち着かない方法でそれらを紹介したいと思います。

ポインタは、変数を含むメモリブロックのアドレスです。

このように整数を宣言すると、次のようになります。

int age = 37;

使用できます&変数のメモリ内のアドレスの値を取得する演算子:

printf("%p", &age); /* 0x7ffeef7dcb9c */

私は使用しました%pで指定された形式printf()アドレス値を出力します。

アドレスを変数に割り当てることができます。

int *address = &age;

使用するint *address宣言では、整数変数を宣言しているのではなく、整数へのポインタ

ポインタ演算子を使用できます*アドレスが指している変数の値を取得するには、次のようにします。

int age = 37;
int *address = &age;
printf("%u", *address); /* 37 */

今回もポインタ演算子を使用していますが、今回は宣言ではないため、「このポインタが指す変数の値」を意味します。

この例では、age変数であり、ポインタを使用して値を初期化します。

int age;
int *address = &age;
*address = 37;
printf("%u", *address);

Cを使用する場合、この単純な概念の上に多くのものが構築されていることがわかります。上記の例を自分で実行して、少し理解してください。

ポインタは、メモリアドレスとデータの編成方法について考える必要があるため、絶好の機会です。

配列一例です。配列を宣言するとき:

int prices[3] = { 5, 4, 3 };

ザ・prices変数は、実際には配列の最初の項目へのポインターです。これを使用して最初のアイテムの値を取得できますprintf()この場合の関数:

printf("%u", *prices); /* 5 */

クールなのは、1を追加することで2番目のアイテムを取得できることですpricesポインタ:

printf("%u", *(prices + 1)); /* 4 */

他のすべての値についても同様です。

文字列は内部の配列であるため、多くの優れた文字列操作操作を実行することもできます。

また、オブジェクトや関数の参照を渡すなど、コピーに多くのリソースを消費しないようにするために、さらに多くのアプリケーションがあります。

私の無料ダウンロードCハンドブック


その他のclangチュートリアル: