C言語ポインタ完全制覇

今日はちょっと昔を振り返って、僕が新卒で入社した頃の話を。

僕が新卒で入社した当初、まずC言語の勉強から始まりました。学生時代に多少C言語を使った演習をやっていたので、「まぁいけるだろー」なんて思ってましたが。。

最初に与えられた課題が、「Cのソースコードをトークンごとに分割する」というものでした。学生の頃、同じ課題をやったことがあったのですが、確か結局完成できなくて(ぉい)友人のソースコードをパクって提出したものです。

そんなわけでリベンジなるか!という感じで取り組んでいたのですが。。結局1ヶ月程度かかってしまいました。うーん。新卒プログラマなんてそんなモンですよ。学生時代なんて部活とバイトしかしてなかったもん。くすん。

まぁ当時、何が一番苦戦した(※)かというと、やっぱポインタです。初心者最大の難関といわれるポインタです。僕も例にもれず当時は意味不明だったわけですが。

自称読書少年だった僕は、ここで「本パワーで課題なんかやっつけちゃえ!」なんて思い立ちまして、C言語関係の書籍を探しに書店をハシゴしたものです。今考えると、本当に必要なのは言語仕様に関する(多少の)正確な知識だったんですよね。ポインタに関して何もわからなかった。。

で、何冊買ったか覚えてませんが、そのうち一番良かったものがこの一冊。C言語ポインタ完全制覇

(上の画像は改訂版です)
C言語の入門書は大量に出版されていて、そのうち全く役に立たないものがほとんどでした。ホント、全く理解の足しにならないものをどうしてあんなに置いてあるものか…。なんて思ってしまいますが、この書籍は全然違いました。

「はじめに」からの引用ですが、

書店にあふれるC入門書を見ていると、私には「どうもこの本の著者さんは、日常的にCを使って、大規模なプログラムの開発に従事したことはないんじゃないんだろうか?」と思えるものが非常に多いように見受けられます。

なんて事を言ってるわけで、これは中身に関しても非常に実用的で期待が持てるんじゃないかと思いました(実際そうだったわけですが)。また、

Cにおける最大の難関といえるポインタの解説も、なんだかとても教科書的というか、どの本も似通った説明をしていて、そして、そのどれもが、説明が非常にわざとらしい。ポインタを使うため「だけ」の例題でもって、退屈な説明をしている本が多いのです。
(~ 中略 ~)
私自身、昔は配列とポインタにまつわるCの文法でかなり悩んだものです。
この本は「あの頃、こんな本に出会っていたら、悩まなくて済んだのに」という思いをこめて書きました。

とあるじゃないですか。そうです。この本はにくっきポインタ野郎を完全制覇してやろうという意志がこめられてるのです(そこまで言ってません)。

肝心の内容の方も、非常にわかりやすい説明で、「この場合はどうなるの?」とか「こーゆー場合は問題ないの?」とか「これをするにはどうすれば?」的な疑問に的確に応えてくれてます。

「コレはこういう結果になるけど、一体なんでだよ!」的な例の場合、ソレはこういう言語使用だからそうするならソレが原因でそんな結果になるよという説明…Cの言語仕様にもとづいた正確な説明が書かれているんです。

また、読んでいて眠くならない、飽きないんです。というか、面白いくらい。事例ひとつ取り上げるにしても、著者の意見を交えながらの説明なので、「淡々と説明が続いてるだけ~」じゃないんですよね。

中でも最高なのは

Point

p[i] は、 i[p]

のように書く事もできる。

Point
【上のポイントに関するもっと大事なポイント】
でも書くな。

前橋和弥様、サイコーでございます。

そんな感じでC言語のポインタを楽しく正確に理解したい方は、C言語ポインタ完全制覇、ぜひどうぞ。

※ポインタの理解というのも原因だったのですが、本当の原因はデータ構造ってやつを全然意識していなかったからなんですよね。そりゃグチャグチャのコードになるわけですよ。

スポンサーリンク
本文中広告




本文中広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする