新・闘わないプログラマ No.162

完全制覇


「ん? C言語? ああ、あれねえ、ポインタのところで躓いたんだよなあ、何がなんだかさっぱり分からなくなってさあ、あれさえ無けりゃあC言語もモノになったんだけどなあ」などという話は、ときどき、しばしば、ちょくちょく、頻繁に、聞く話だったりするわけですけど、だからと言って、C言語からポインタを取ったらC言語じゃ無くなっちゃうような気がしないわけでもないわけで、C言語をやって行く上ではどうしてもポインタは避けられないことだったりするわけです。
私も、C言語を知らない人に教えてきた経験があるのですけど、やっぱり分かりづらいようですね。いや、基本的な考え方ときまりはそんなに沢山あるわけでも複雑でも無いはずなのですけど、でもなかなか理解してもらえない、ってところがあります。
それどころか、C(C++でもいいですが)でバリバリにプログラムを作っている現役プログラマの大半も、実はポインタのあたりの理解が怪しげだったりするのが現状で、でもそれでもなんとかなっている(いやいや、往々にして落とし穴にはまったりするのですが)のは、「こういう場合には(なぜだかわからないけど)こう書く」と体で覚えている、というのが理由だったりします。
などとエラソーに言っている私自身、理解が怪しげなところもあったりして、いやまあその、なんと言いますか…。

というような話は、今までも何度かしているような気がしますけど、以前、私の書いたそういう駄文に対して、で(ぱ)さん(前橋和弥さん)からメールを頂きました。その前橋さんが、先日、本を出版されたということで、私も早速入手いたしました。

「C言語 ポインタ完全制覇」 前橋和弥著 技術評論社 2001年1月刊

C言語のポインタに的を絞った本と言うと、「秘伝C言語問答 ポインタ編」(柴田望洋著、ソフトバンク刊)が結構有名だったりしますけど、この分野で新しい本が出版されるのは嬉しい限りです。
というのも、数年前ならいざ知らず、今ではC言語の本って売れ筋からは結構外れているんじゃないかなあ、なんて思ったりするわけで、前橋さんのサイトの「配列とポインタの完全征覇」「C言語ヨタ話」の内容を膨らませて本になってくれたらなあ、でも難しいかなあ、などと思っていたのですね。

さてさて、件の本ですが、まだざっと見ただけでですが、内容的には教科書的というよりは、C言語の(特にポインタや配列に関する)コラムというか、そういうのが沢山詰まった本、という感じでしょうか。ですから、網羅的に勉強するときの教科書というよりは、副読本や、ある程度、勉強した人や実際に仕事で使っている人が読むと為になる本かな、と。いや、著者の思惑は違うのかも知れませんが。
実際の内容は「うんうん、そこ、説明するのに苦労するんだよなー」なんてところとか、「そうそう、よくあるある、その間違い」とか、思わずニヤリとしてしまうような記述も多くて、私も結構楽しんで読んでいます。
例えば(61ページ)、

POINT
p[i]は、i[p]のように書くことも出来る.

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

ってのがあって、個人的にウケました。なぜかというと、私も教えるときに全く同じことを言っていましたから。
まあ、こういう余談って、Cを教えるときにしてもいいのかどうか、というのは議論が分かれるところだと思いますけど、私なんかは、

    p[i] → *(p+i) → *(i+p) → i[p]

ってのを印象付けるために、あえてこういう余談をはさんだりしています。案外、こういう余談ってよく覚えていたりするんですよね。
ポインタとは全然関係無いですけど、「c = a++-+b」や「c = a---+b」という式は文法違反じゃなくて、「c = a++++b」や「c = a-++-b」は文法違反なのは何故か、とか、そういうほとんど何の役にもたたなそうな余談ばかりやっている私だったりします。

ところでこの本の実際の内容ですけど、某氏の本とか、某氏の本とか、はたまた某氏の本とか、ちょっと眺めて見ただけで嘘が見つかる本とは違って、さすがに技術的な誤りは、私が見た範囲内ではいまのところ見つかっていませんです。
いや、これでも私、かなり意地悪く探しているんですけどねえ…某氏の本のように、嘘の方から「突っ込んでください」とばかりに擦り寄ってくるようなのとはさすがに…って、比べるだけ失礼か。
いやもちろん、著者自身の意見を述べているところでは、同意できる部分もありますし、「いやあ、私はそうは思わないなあ」という部分もありますけど…具体的内容は、まだ読んでいる最中なので、近いうちにまた書きます。
で、読んでいて思ったのですけど、K&R(「プログラミング言語C」B.Wカーニハン/D.M.リッチー著)批判が結構面白かったりします。私自身、以前書いた駄文で、K&Rを薦めていますけど、結構納得できない部分や、説明不足で誤解を生じてしまう恐れのある部分があって、講習のテキストで使うとき(あ、前橋さんは、K&Rをテキストには使いたくない、とおっしゃられていましたね)には、注意やら補足説明をしていたりするのですが、どうせなら「K&Rの歩き方」とか「K&Rを読み解く」とか、そういうサイトでも本でもあると便利かなあ、なんて思っちゃいました…あ、不満があるのなら自分で書きゃいいのか。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp