ポインタとは?
CoddyのCジャーニー「Logic & Flow」セクションの一部 — レッスン 1/63。
コンピュータのメモリを、何千もの部屋がある巨大なアパートのようなものだと考えてみてください。各部屋には固有の住所(アドレス)があり、それぞれの部屋には1つのデータを保存できます。C言語で変数を作成すると、これらの部屋の1つに割り当てられます。
ポインタは、数値や文字のような通常のデータを格納するのではなく、別の変数のメモリ上の場所(アドレス)を格納する特殊な型の変数です。紙に誰かのアパートの部屋番号を書き留めるようなものだと考えてください。その紙自体にその人が入っているわけではありませんが、その人がどこにいるのかを正確に教えてくれます。
int age = 25; // これはメモリ内に変数 'age' を作成します
int *ptr; // これはアドレスを格納できるポインタを作成しますこの例では、ageはあるメモリ番地(例えば1004番地としましょう)に格納されており、ptrはage変数を「指し示す」ためにアドレス1004を格納できるポインタ変数です。
ポインタは、メモリアドレスを直接操作できるため、C言語の最も強力な機能の一つです。これにより、プログラムをより効率的にし、動的メモリ割り当てや複雑なデータ構造といった高度なテクニックが可能になります。
チートシート
ポインタは、データを直接格納するのではなく、別の変数のメモリ番地(アドレス)を格納する変数です。
ポインタを宣言するには、* 演算子を使用します:
int age = 25; // 通常の変数
int *ptr; // アドレスを格納できるポインタ変数ポインタを使用すると、メモリを直接操作できるようになり、動的メモリ割り当てや複雑なデータ構造などの高度なプログラミング手法が可能になります。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。