C言語ポインタ完全制覇

ポインタの「正体」が分かる

誰もがつまづくであろうポインタ、その正体を異常に分かりやすく解説します。

読み進むにつれ、C言語の謎が徐々に解けて来る、良書の中の良書

私も学生時代これを読んで、ようやくポインタを理解出来ました。
そしてプログラミングの成績が一気に上がったのは良い思い出です。

C言語の基礎はやったけど…

C言語の基礎は一応学んだけど、ポインタメモリ関係がよく分からん!
そんな人にぜひとも読んで欲しい一冊です。

ポインタがなぜ分かりにくいのか?

を、我々凡人プログラマー目線で説明してくれます。

また「読み物」感覚の軽い文体なので、堅苦しい技術書とは違って、睡魔を召喚しません。
著者のユーモア、ノリとツッコミのセンスも、なかなかのものです。

ポインタと配列の微妙な関係

本書では、やたら単純なテストプログラムを見ながら、ポインタの仕組みに迫ります。
結局ポインタとは「アドレスの入れ物」なんですが、それを実際に目で確かめられるのが嬉しいです。

また、よく混乱する配列とポインタの関係も詳しく解説しています。

配列とポインタは全く別物なんですが、ある事情により同一視できるケースもあります。
本書はそういったルールと例外を明快に教えてくれます。

私は学生時代、これで目からウロコがドッカンドッカン落ちました。
まあ知ってしまえば結構シンプルなんですが。

なぜ分かりにくい?が分かる

他にも本書は、C言語の謎を丁寧に解き明かしてくれます。

例えば関数にポインタが絡んでくる宣言。↓こんなやつ。

int  ( *hoge( int a, float ( *b )( int c ) ) )( float d );

うわっ分かりにくい!と思った人は正常です。

ちなみに正解は、以下のようになります。

まず、これは関数プロトタイプ宣言です。
だから hoge は 関数です。

hoge の戻り値は、関数へのポインタです。
  どんな関数へのポインタ?→ int を返し、引数が float関数だよ

hogeの引数は、2つあります。
  1つ目 int
  2つ目 関数へのポインタ
    どんな関数へのポインタ?→ float を返し、引数が int の関数だよ

なんというか関数やポインタという単語が、ゲシュタルト崩壊を起こしますね…

しかし本書にあるコツを使えば、こんな複雑な宣言文も読めるようになります。

他にも

  • 宣言と式の違い
  • シンタックスシュガーとは
  • スタックとヒープ
  • バイトオーダとアライメント
  • 空の[ ]の意味

などなど…ポインタを通じて、Cの言語仕様をより深く理解できます。

アマとプロの違い

本書はC言語の「分かりにくさ」を紹介しながら、設計思想にも踏み込んでいます。
タイトルではポインタを強調してますが、実の所こっちがメインと言っても良いです。

表面的な文法だけではなく、設計思想とコンパイラの事情も理解すれば

なぜこう書くのか?

が具体的に分かってきます。

私の考えでは、プロとアマの違いはここにあると思います。

「とりあえず動けばいいや」レベルから脱却し、内部の動きをイメージできる。

プロのプログラマーは、そういった深い階層の知識が必須です。
(それを知らない人もかなり見ましたが…怖い怖い)

だから、いつも設計思想を意識する習慣をつけましょう!

そのプロへの入り口として、本書は最適だと言えます。

追記 改訂版が出ました。今買うならこっちです。

おまけ
同じ著者さんのセンス・オブ・プログラミング!もオススメです。
プログラミングを「組む力」が上がります。

C言語ポインタ完全制覇

C言語ポインタ完全制覇
10

分かりやすさ

10.0/10

普遍性

10.0/10

コストパフォーマンス

10.0/10

なるほ度

10.0/10

Points

  • ポインタの正体が分かる
  • C言語を深く理解できる
  • 紛らわしい仕様を整理できる
  • Cの設計思想が分かる
  • なぜ動くか?が分かる

Notes

  • 歯に衣着せぬ文章だけど怒らないでね
  • ユーモアが分かる人に

もっと知りたい?
C言語_初級 | C言語_中上級 | C++_初級 | C++_中上級 | C#_初級 | C#_中上級 | Java_初級 | Java_中上級 | コンピュータ_サイエンス | アルゴリズム_ | ゲーム_プログラミング | DirectX_ | Unity_ | ゲーム_デザイン | ゲームのしくみ_ | 数学_ | プログラミング_テクニック | 歴史_偉人 | ソフトウェア工学_ | 読み物_エッセー | 人生_生き方 | 創造_発想 | 雑誌_ | 漫画_小説_映画 | メルマガのバックナンバー_

無料メルマガ好評配信中!
直球より変化球主体で攻めるプログラミングのメルマガ

読むだけで使える!プログラマーの裏技と考え方

読むだけでもプログラミング力が上がる
上辺の技術ではないプログラミングの本質が分かる
ビギナーからプロのゲームプログラマーまで幅広い方が購読しています(感謝!

つまり、登録して一緒にプログラミングを楽しもうぜ!
ってことだよ。言わせんな恥ずかしい。


登録完了メールが届きます
届かない場合は迷惑メールフォルダや設定を御確認下さい
powered byメール配信CGI acmailer

Kuniaki Ebata 登録者

プログラマーで現役のスキー国体選手です。
頭脳と体を動かすのが大好きなフレンズなんだね。専門学校で先生もやってます。

教え子をゲーム会社にどんどん送り込み、世界を面白くする野望を実現中。

プログラミングが上達するメルマガやってます。

ここを見たゲーム業界の卒業生へ
新作が出たら、連絡するか現物を送ってくれると嬉しいです。
ただし18禁・CERO-Dの場合は、厳重に梱包の上、品名をパソコン部品にて送る事(だいじ)。