- ベストアンサー
C言語の本について
- 多くのC言語の本には書かれていない基本事項がある
- 基本を理解するためには複数の本を読む必要がある
- この本のシリーズは高価だが、基本を全て書いているお勧めの本
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>たくさんの本を読む必要が出てきます。 同感です。うちには三十冊以上のC言語の本がありますが…。 シリーズでそういうのは知りませんが、 以下の本を持っておけば、ある程度対処できるのではないかと思います。 (総記) 『新ANSI C言語辞典』平林雅英著 技術評論社 『ANSI C/C++辞典』平林雅英著 共立出版 どちらか一冊。 後者はC++も載っているけど、昔のC++規格。 (概念・理論) 『Cプログラミング専門課程』藤原博文著 技術評論社 これはお勧め中のお勧めなんだけど、 残念ながら現在品切れのようです。 古本屋で見かけたら買っておきましょう。 「柴田望洋」氏の本は評価が高いようです。 うちには『秘伝C言語問答 ポインタ編』(ソフトバンク)がありますが、 ポインタ関係の理解のためにはいい本だと思います。 (ライブラリ) ライブラリ関数を易しく説明した本も あるといいのですが…。うちには 『新・詳説C言語 H&Sリファレンス』(ソフトバンク刊)がありますが、 これも現在在庫切れのようです。 本屋に行けば似た狙いの本は見つかると思います。 (FAQ) 昔、 『CプログラミングFAQ』(トッパン刊) という本があって、便利だったのだけど、 トッパン自体が出版事業をやめてしまった。 もっともこの内容は http://www.catnet.ne.jp/kouno/c_faq/c_faq.html から読めます。 それぞれ一冊買っておくといいと思います。 ところで、 >ポインタが指すことの出来る範囲は、 >配列の先頭の要素から、末尾要素の ”次”の要素までです。 そういうアナーキーなことが書かれているのは何という本ですか。 後学のためにぜひ教えてください。
その他の回答 (3)
- liar_adan
- ベストアンサー率48% (730/1515)
>>そういうアナーキーなことが書かれているのは何という本ですか。 >「柴田望洋氏の明解C言語入門編」です。P243に番兵法などのために配慮されている。と書かれて有りました。 そんな規則あったかいな…。 でも望洋先生がいいかげんなこと言うとも思えないし、 何かの勘違いじゃないかな…と思って、調べました。 近所の本屋に立ち読みに行ったけど、置いてない。 どうしたものかな、と思ったら、 うちの書棚にありました。 すっかり忘れてた。 数を持ってればいいというものではありませんね。 それはともかく、 書かれていることが私の常識になかったので、 C言語の憲法と言える、JIS X 3010規格を読み直してみました。 その結果、§6.3.6 加減演算子の項目にありました。 「ポインタオペランド及びその結果の両方が同じ配列オブジェクトの要素、 又は最後の要素を一つ超えたところを指している場合、 その結果は、オーバフローを起こしてはならない。 それ以外の場合、動作は未定義とする。……」 との表現で、配列の中と、一つ超えたところ以外の アクセスを未定義としていました。 ここの規格をうんと厳密に読むと、 望洋先生の記述にも問題がないわけではないのですが、 大筋ではまちがっておりません。 破棄する必要はないです。 これはX3010の「可搬性」の項にも記述がない事項で、 ほとんどのプログラマが注意を止めないところだと思います。 望洋先生はすごい。 私の知識が欠落していました。 訂正して、おわびいたします。 なお、上記のX3010というのは、JISが出しているC言語の規格書です。 本当はこれも持っているといいのだけど、 文体が法律のように難解だし、高価(8000円ぐらいだったかな)なので、 ちょっと一般的には奨められません。
お礼
liar_adanさん ありがとうございます。 アナーキーという表現をどのように解釈したらいいの? と思っていましたが、これでよく分かりました。 いずれにしてもこの件は、間違いではないが一般的にはあまり使われない領域のようですね。
- terra5
- ベストアンサー率34% (574/1662)
>ポインタが指すことの出来る範囲は、 >配列の先頭の要素から、末尾要素の ”次”の要素までです。 参照しなくていいなら配列を無視してどこでも指せますし、 厳密に参照可能と言う意味なら配列の末尾までとすべきです。 こういう誤った事を書いてある本は他の内容もあてになりませんから、変な事を覚え無いうちに破棄することをお勧めします。 基本は全て・・っていうのは、漠然としすぎているので、手頃なのはなさそうに思います。 C言語の基本、プログラミングそのもの基本、コンピュータのしくみとしての基本と別々に必要と思いますし。
お礼
回答ありがとうございました。
- shindyJr
- ベストアンサー率35% (463/1321)
こんにちは。 シリーズもので完結するC言語の手引書はないようですね。参考URLから、例えば同じ著者による「入門扁」「応用扁」をそろえられてはいかがでしょうか。 アドバイスになったでしょうか。
お礼
回答ありがとうございます。
お礼
いろいろ詳細に回答ありがとうございました。 >そういうアナーキーなことが書かれているのは何という本ですか。 良くぞ聞いて下さいました。実はその本は、あの著名な「柴田望洋氏の明解C言語入門編」です。P243に番兵法などのために配慮されている。と書かれて有りました。 元々、良書だとは聞いていましたが、私にとっては知らない、しかし基本事項と思われる項目が数点あり今回の質問に至りました。