C言語ポインタ完全制覇 (標準プログラマーズライブラリ)
C言語ポインタ完全制覇 (標準プログラマーズライブラリ)
C言語ポインタ完全制覇 (標準プログラマーズライブラリ)
技術評論社 技術評論社
¥ 2,394
C++クラスと継承完全制覇 (標準プログラマーズライブラリ)
新版 C言語によるアルゴリズムとデータ構造
C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)
新版 明解C言語 入門編
C言語体当たり学習 徹底入門 (標準プログラマーズライブラリ)
■ポインタをマスターしたければ本書を読め。 評価5 日付2008-04-16これは素晴らしいのひと言。目から鱗が落ちまくりです。Cを学ぶ際にほぼ全員が躓くといわれる悪名高きポインタですが、本書を読めばほぼ全員がそのポインタをマスターできると思います。
本書では、ポインタの「そもそも論」から、その使われ方・使い方・応用まで万遍なく網羅されているので、ポインタに関する勉強はこれ一冊やっておけば十分です。しかも、C言語そのものについての話題やメモリの使われ方に関する説明も豊富で、非常に良質の教科書に仕上がっていると思います。(特にCのメモリの使い方に関しては、一章を使ってみっちり説明されており、必読)
さらに、大まじめなプログラミング言語の本にもかかわらず、文章が面白くテンポがよいところも高評価。結構分厚い本ですが、楽しく一気に読み切ることができました。普通に読み物としてもよくできていると思います。これはホントに名著ですね。
ポインタの使い方がどうもよく分からないという方はもちろん、そもそもポインタという手法を導入することになった背景(プログラミング哲学)を知りたいという方にもオススメの一冊です。ってか、普段Cを使ってる人だったら、とにかく騙されたと思ってさっそく買って読んでみましょう。きっとたくさん得るものがあるはずです。
■最初の入門書にはできない、けれど 評価5 日付2008-01-16本書は「目からウロコ」と例えたくなるような解説がとてもいいと思いました。
具体的にはポインタと配列の関係ー読み替える方法、またその例外ーの解説などがあり、どんな本でもしっかりこう書いてくれていればいいのに、と思う内容です。
題名通りポインタの解説が中心ですが、他にもメモリの使われ方や左辺値、右辺値の解説など、C言語の理解に役立ついろいろな知識を本書で知ることができます。これらは大事な事だと思うのですが、意外に解説を他で見ることがないように思います。
C言語の入門書を1冊読んだ後、なんとなくわかったようだけどポインタはよくわからない、くらいの時、本書を読むと効果は大きいと思います。良書とお勧めします。
■あまり役には立たない 評価2 日付2007-10-13ポインタというものを殆ど理解した頃に何か得ることはないかと思って買った本です。分からない人を対象にしているとしていますが、それにしては内容がマニアックすぎます。
本書は口語調で統一されています。C言語の隅をつつくような内容が好き嫌いの分かれるところではあります。例を挙げるとp[i]はi[p]と全くの等価であるとかです。この他にもなるほどとは思うけれど、どっちかっていうとトリビアだろ?みたいなものばかりです。
読み物としての価値は認めますけど、真剣にポインタを制覇しようとしてる人に、このノリはないんじゃないかと。
■言っていることはその通りなのだが... 評価3 日付2007-08-14C言語が開発された当時はコンピュータの能力が貧弱だったため、なるべくプログラミング言語のシステムを
簡素化する必要があった。その最たるものは「LISP」であるが、Cもかなり仕様を縮退させている。
そのための手法のひとつが「ポインタ」である。Cでは配列・関数・参照渡しを文法的に扱うのではなく、
ポインタによるシミュレーションで処理するようになっている。たとえば
a = hoge[0];
func(0.5);
と記述してもこれらは実際にはポインタ演算の構文糖である。これらの仕組みのためCコンパイラを小さく
作ることができたが、これは裏を返せばプログラマがコンパイラの動作の一部を肩代わりすることでもある。
そのため、プログラマには扱いにくい言語仕様になってしまった。現在ではコンパイラを小さくすることに
あまりメリットがないため、ポインタ記述のややこしさだけが目立ってしまっている。
さらに、C言語をややこしくしているのに「文脈性」がある。互換性と利便性を両立させるために、宣言と
式文中で記述の解釈が違う場合がある。たとえば
char hoge[] = "abc";
はOKなのに
char hoge[4];
hoge = "abc";
はNGになってしまう。これに限らずCは一貫性があるように見えて実はないので、文脈に神経質にならざるを得ない。
上記の事に関して本書はくどいくらいに解説している。プログラミング言語のしくみというものを徹底的に
考察しており、中級以上のプログラマにはかなり参考になると思う。
だが、本書の著者である前橋氏には欠点がある。この人は説明のためにわざと嘘をつくクセがあるのだ。
たとえば本書の59ページに
"Cでは、配列名の後に[]を付けずに、配列名だけ単独で書くと「配列の先頭要素へのポインタ」という意味になります。"
という説明を「間違っている」と書いているが、それこそ間違いである。正確には「間違ってはいないが
誤解を招きやすい」である。この後のページでの説明は全く正しいので、読者にショックを与えるために
意図的に嘘をついているとしか思えない。これでは大抵の人が誤読してしまうだろう。これは何も本書に
限ったことではなく、他の書籍や雑誌連載でも似たようなことをしているので、前橋氏の特徴であると
判断できる。そのため私は彼の文章を読むときには記述に注意して読むようにしている。
本書で指摘されていることは非常に鋭く有用であるのだが、著者の文体に問題があるため手放しで褒める
わけにはいかない。本書を読む場合には著者の言い回しをうまく回避することを意識してほしい。そうすれば
C言語についての深い理解を得ることが出来るだろう。
■C言語のカベ!ポインタを制覇する♪ 評価4 日付2006-08-23Cといえばポインター、ポインターといえばC・・。
Cを学ぶと必ずぶつかる壁の一つがポインタだと思っています。
(Javaも裏でポインタつかいまくっているので、Java開発者もご覧になると良いと思います。)
配列とポインタの違いはなんぞや?
バッファオーバフローってなんのこと?
scanf関数ってなんで使っちゃいけないの?
っていう素朴な疑問をお持ちの方にオススメな良書です。
・・・・すみません。
ホンネをいうと、表紙のデザイン(ロボ?)がかわいくて買いました。。笑
いずれにしても良書には間違いありません。
⇒ もっと詳しく調べる