2009-04-29 11 views
10

The C Programming LanguageのBrian KernighanとDennis Ritchieによると、初心者が最も好む本のいくつかは、anything by Herb SchildtやさらにはO'Reilly Practical C Programmingのように避けられないものが多く、これらの代替手段はあまりないようです。さもなければ、利用可能な材料のほとんどはC++に関するものです。K&Rの後にプレーンCでプログラミングを学ぶために使う本は?

私は既に持っているK & Rと優れたC: A Reference Manualのほかに、他のどのような本が道に沿って、悪い習慣を学習せず、(プレーンC89なくC++)、Cのコードを学ぶために使用するのがベストですか?

+0

なぜK&Rではないですか?これはあなたが好きではなかったいくつかの本を悪口にする言い訳でしたか? –

+3

Andy、Schildtは/有名/悪いです。 – tpdi

+1

ピート・ゼーバッハは、Schildtの本の1つについてこう語っています。「C:The Complete Referenceは人気の高いプログラミング・ブックです。それは大部分がひどいという事実によってのみ傷ついています。微妙に違いますが、Cとはまったく異なっています。このページは、人々に何が間違っているかを知る良い方法を提供することを目的としています。 http://www.seebs.net/c/c_tcr。html – tpdi

答えて

20

ピーター・バン・ダー・リンデンのExpert C Programming: Deep C Secrets

+0

合意。これは非常によく書かれた本だけでなく、Cのもっと難解なコーナーについて多くのことを教えてくれるだけでなく、面白​​くて面白い読み物です。 –

6

私は完全に本を避けるために言うと思います。プロジェクト、プロジェクト(あまりにも大きいわけではありません)を選び、Cでそれを実装してください。単純にジャンプしてやることに代わるものはありません。 K & Rは、あなたが本当に良い学習をするために遭遇し、経験を得ることができるという十分な知識を与えます。

+0

質問は、 "Cを学ぶ方法"ではなく、 "良いCの本を読む"ことを求めています。私はすでにいくつかの小さなプロジェクト(そしてGoogleのcodesearchを使ってソースコードを参照しています)に取り組んでいますが、私が現在やっていることに関連するトピックや、やりたいことを読んで楽しんでいます。 –

7

Thisは、Schildtが悪い理由を説明しています。いくつかのより多くの批評here

SO for Cのリソースを検索してください。

11

C: A Reference Manual by Harbison and Steele

これは、チュートリアルの本ではないのですが、それはハンズダウン(でも、私の意見ではK & R以上)Cで最高の本です。 K & R(または他のチュートリアル)と組み合わせて使用​​すると、C言語の素晴らしい基礎が得られます。

+0

はいこれはC本が必要です。私はそれをK&Rと一緒に質問に含めるべきだったし、そうしました。 –

0

Cプログラムを読むことをお勧めします。悲しいことに、私はこれを十分に行って特定のものを推薦することはできませんでした。

+0

これを私の回答に追加することを検討していましたが、これは少し誤解を招くかもしれないと思います。 C言語は実装には最適な言語ですが、恐ろしく恐ろしい実装のための磁石でもあります。最良のCコードの中にあっても、はっきりと不明瞭なコードがあります。私は特にCを学ぶために、 "やって"は "読む"よりも貴重だと思います。 –

+0

私は「やっている」を含めるだろうが、すでに言及されていた。 –

4

私はPointers on C Kenneth A. Reekが好きです。私はそれがK & Rよりも優れていると言えるほど遠くはしませんが、私は確かにそれをよりフレンドリーでより簡単に学ぶことができました。私はK & Rで始まりましたが、この本を手に入れるまでは実際にCのハングを取得しませんでした。

を編集してください:私はまた、この本の価格が私がそれを購入してから急上昇していることを知りました。だから私の推薦はまだそのように立っているが、私は実際に現在の尋ねる価格でそれを推薦することはできません。だから、もしあなたが中古のコピーやコピーを図書館で見つけることができればそれは価値があるのですが、現在の価格では基本的にちょっとしたお金と同じくらい良い本があります。

エキスパートCプログラミングは、少なくとも私はそれを完全に推奨することを躊躇しているが、あなたはCのハングを取得した後に見て価値があると考えています。プラス面では、多くの良いヒントと秘訣、そして非常に有用なアドバイスが含まれています。マイナス面では、それらのトリックやアドバイスは、ひどく整理されています。有用ではないアドバイスの中に埋もれていて、半分の本は、冗談、脇役、無関係な(しかし面白い)話で満ちているようです。だから私は図書館からそれを借りますが、それにお金を払わないでください。

しかし、あなたは間違いなく実現していないとして、あなたは本当にあなたが私がMcWafflestixに同意C.

+0

Cのポインタは、購入するのが最も簡単です。 –

+0

@ロブ:うわー、いつそれが起こったのですか?私は鉱山を購入してから数年経っていますが、イギリスで買ったことがありますが、他のプログラミング書籍よりも高価だとは思いません。 – dagw

+0

残念ながらamazon.co.ukの£75.72です。それはその価格の価値がある。 –

0

を書くまでは、任意のプログラミング言語を習得する最良の方法は、単にプロジェクトにジャンプして、見ているCを学ぶことは決してないだろうあなたがそれらを必要とするようにアップ。これは私が学んだことです...私は考えている4つの言語の周り?そしてそれは一貫して働いています。

乾杯!

8

私はPractice of ProgrammingProgramming Pearlsを読むために誘惑されるだろう。どちらも、かなり簡潔冊であり、Cはプレスカンファレンスからアイバー・ホートン(第3版)によって

+0

プログラミングの練習は優れた第二の本です。 Programmin Pearlsはもう少し高度なIMHOです。 –

1

以降Cに配向することは、Cプログラミング上の偉大な入門書です。この本は非常に徹底的であり、参考書ではありませんが、C言語のすべての初めから終わりまでの良いチュートリアルです。

Beginning C by Ivor Horton (3rd Edition)

+0

私はint main(int argc、char * argv [])の記述なしで、どこでもint main(void)を使用していると読んでいるようです。 –

+0

彼はANSI C標準に従って有効な宣言であるint main(void)を最初から定期的に使用しています。その後、main(int argc、char * argv [])宣言を紹介します。 –

0

いくつかの短いが参考になったレビューはbeginner's Cためとadvanced Cため、ACCU(ロシアミラー)であります。

7

K & Rは、基本的にあなたがCについて知っておく必要があるすべてをカバーし、さらに一般的に使用されているいくつかのデータ構造を実装しています。あなたは* nixのを使用して、オペレーティングシステムの利点を活用する方法を学習したい場合は、Advanced Programming in the UNIX Environment, Third Editionは良い参考です/スレッドを作成、そのようなファイルを読み込むなどの一般的な用途に導くなどのサンプルコードC.

+0

K&RはスレッドやC11固有のものは対象としていません。 – Geremia

+0

K&Rも関数ポインタに関して深く関わっていませんが、この膨大な作業はありません。 – Geremia

0
あります

K & Rも現在のバージョンではありません。ISOまたはANSI Cは、

+0

Err ...実際、K&Rの第2版はANSI C(特にC89)をカバーしています。しかし、現在のCのバージョンはC99で、K&Rはカバーしていません。 – hbw

2

もう一度あなたのK本を受け取り、今度は演習をしてください。次に、あなたのコードとK & Rのコードを比較して、機能のインタフェースとデータ構造に似た優雅さがあるかどうかを確認します。これはすぐに読んで次の本に進む本ではありません。それには貴重な情報がたくさん含まれており、演習では最初の読んでいなかったもののいくつかを実現するのに役立ちます。

1

私が持っている最高の教科書は、C: A Software Engineering Approachで、Peter A. DarnellとPhilip E. Margolisです。それは他の書籍ほど有名ではありませんが、それは非常に読みやすく、すべての詳細を扱っています。K & Rスキップします。

これは、しかし2つの欠点があります。

  1. それはC99をカバーしていないので、それは、1996年からです。 (これはあなたがC89に興味を持っているので、あなたにはうまくいくはずです。)
  2. かなり高価です。

編集: 対象の他の本はスティーブ・サミットによってC Programming FAQsです。私はこの本を印刷していませんが、付属のweb siteはCのあまり明白でない特徴を理解するのを助けてくれました。

関連する問題