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チュートリアル:
- Cプログラミング言語の紹介
- C変数とタイプ
- C定数
- C演算子
- C条件付き
- Cでループを操作する方法
- C配列の概要
- Cで配列の長さを決定する方法
- C文字列の概要
- Cで文字列の長さを見つける方法
- Cポインタの紹介
- Cで配列をループする
- Cのブール値
- C関数の紹介
- CでNULLを使用する方法
- Cの基本的なI / Oの概念
- Cでの二重引用符と一重引用符
- C関数から文字列を返す方法
- Cで暗黙的に宣言されているライブラリ関数の警告を解決する方法
- Cで文字値を確認する方法
- Cで `printf()`を使用してパーセント文字を印刷する方法
- C変換指定子と修飾子
- Cでコマンドラインパラメータにアクセスする方法
- Cの変数のスコープ
- 関数をCにネストできますか?
- Cの静的変数
- Cグローバル変数
- Cのtypedefキーワード
- C列挙型
- C構造体
- Cヘッダーファイル
- Cプリプロセッサ