【1分で本質まで分かる】C言語のポインタを規格レベルで徹底解説

C言語

ここでは、C言語のポインタについて規格レベルで解説する。

「結論→詳細→具体例」の順で説明しているので、知識を思い出したいだけの人は結論を読めば十分だ。

Keep the Spirit of C

· Trust the programmer.
  プログラマを信頼せよ。
· Don’t prevent the programmer from doing what needs to be done.
  プログラマがすべきことを妨げるな。
· Keep the language small and simple.
  言語を小さくシンプルに保て。
· Provide only one way to do an operation.
  操作には一つの方法だけを提供せよ。
· Make it fast, even if it is not guaranteed to be portable.
  移植性が保証されなくとも、速くせよ。

Rationale for International Standard — Programming Languages — C
ISO/IEC JTC1/SC22/WG14 / open-std.org

結論:C言語のポインタの正体

C言語のポインタとは、変数のアドレス(メモリ上の住所)を格納する変数だ。

変数はメモリ上のどこかに存在する。ポインタはその「どこか」を記憶している。

イメージとしては、こうだ。

変数 x

42

アドレス: 0x100

ポインタ p

0x100

x のアドレスを保持

*p で参照

42

x の値を取得

コードで書くとこうなる。

int x = 42;    // 変数 x
int *p = &x;   // p は x のアドレスを保持
printf("%d", *p); // 42 が出力される

ポインタの本質は「値そのもの」ではなく「値がある場所」を扱うことだ。これがC言語の強さであり、難しさでもある。

規格書での解説

この記事を書いた人
庶民ゼミ

東証プライム時価総額ランキングTOP50(26/3時点)の企業でソフト開発してる人|専門はC言語とアセンブラ|浪人を経て国立理系情報学科入学|大学生になるまでPCやプログラミングの知識はゼロ|大学院には進学せず学部卒で現在の企業に入社

「上級者の知識を初心者向けにかみ砕く」をモットーに当サイトを運営中

プロフィールを詳しく見る

庶民ゼミをフォローする
C言語

コメント

タイトルとURLをコピーしました