トップページ⇒prog
42コメント13KB

お勧めのCの本は。

■ このスレッドは過去ログ倉庫に格納されています
0001C-manNGNG
こんにちは。私はプログラムをくむときには、いつも技術評論社の「はじめてのC」
諒田 著

を愛用しておりますが、Cの本って結構間違いとか、説明がへん、といった本って
よくある、って聞きます。実際私の使用している本はどんなもんでしょ。私はいいと
思うのですが、皆さんのなかで使用している方はいますか?

K&Rはもってますが、最初によんだ本が「はじめてのC」なので、これ+辞書でいつもすませて、たまにK&Rをよんでます。


0002#10423NGNG
↓このへんのサイトも勉強になると思います。
http://www1.st.rim.or.jp/~phinloda/cqa.html
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
0003はじCならNGNG
間違いないだろう。日本では準バイブルみたいなもんだ。
0004はじCNGNG
電車の中で読むのはやめましょう
周囲にあらぬ誤解を受けます
0005AONGNG
ブックカバーを掛けましょう。。。>4
0006>5NGNG
よけいあやしいかも、、
0007はじめての CNGNG
シモネタにしては分厚いなと周囲は思うだろうな。
0008いやいや>7NGNG
はじめてのCについて、詳しく解説されている本だなと思うでしょう。
0009ごっとーNGNG
>7
笑った。
>8
うまいっ!
0010はじCはNGNG
最初見たときなに言ってんだか全然わかんなかったな‥

アスキーの入門・応用・実用(だっけか?)C言語3部作
のほうがわかりやすかった。
もっともこの本ポインタのところ大嘘だったけども‥
0011例のやつですねNGNG
アスキーの入門...
おれのファーストテキストもそれだった。
あやうく洗脳されるところだった。

おれは、わかりやすさではソフトバンクの林晴比古がいいと思うけど、
この人もハイレベルになるほど ??? なところが多く見あたってしまう。
0012林晴比古のってNGNG
「トリッキー≒Cの達人」的な書き方があって
あまり好きではなかった
トリッキーなコードが悪いとは言わんけども‥

色々読んでみるのもよいかもしれないけども
自分流な書き方が(字下げとかのフォーマットじゃなくてね)
できるようになるまでたくさん書くのがよいと思うぞ。

って、どの本がよいかのスレッドだっけ‥
Cジャーナルジャパンって今では廃刊なのかな?
雑誌だけど、あれはよかった。
0013K&RはNGNG
Cに慣れてきた頃に読み返すと目から鱗状態になるよ。
0014くりはらNGNG
13に賛成
0015うーんNGNG
>13@`14 最初からK&Rで十分わかると思うけどな。
例題も良く出来てるし…
0016>15NGNG
この手のタイプはfjにうようよしてる。
0017>15NGNG
K&Rに書いてあるソースは、技巧的で初心者には
向かないと思うけど、どう?。

やっぱり、初級卒業から、中級にかけて読む物だと思うよ。
0018>17NGNG
俺もそう思う
予備知識無し(俺のことね)の人間が読んでも
説明が簡潔すぎてわかりにくいよ

でも分かるようになるとなるほどと感心してしまう
俺はまだ初級レベルだけど
0019K&RNGNG
他の言語とかがわかっている人ならば
Cの初心者でも読みこなせるでしょう
コンピュータ言語初めてってヒトには
ちとつらいかも‥

0020>4-9NGNG
まじでわたしはまじで電車のなかで読んでました>はじめてのC
0021ANTI-CNGNG
>19
 私もそう思います。K&Rで始めから、最後までほぼOKかと。
 でも、大学の教科書が読める程度の人でないと、つらいかな。

 K&Rのquick sortが納得いかない、slow sortじゃないのか。あれは。
0022ちょっと外れた話しで恐縮ですがNGNG
Javaのマニュアル本でインプレスの
「Javaプログラミングハンドブック」を使用してます。
何となく、アメリカのエンジニアが書いた本が好きなので・・・。
でも翻訳が最悪です。

みなさんは、著者の国籍とかは気になさらない方ですか?
Java本のお勧めとかも伺いたいです。
0023とうつNGNG
>22
著者の国籍より内容が問題でしょう。
英語のものが多くなるかも?

日本語のJava本なら個人的には
Javaのからくり―オブジェクト指向入門―
http://www.idg.co.jp/books/lib_program/Java_no_Karakuri/index.html
あたりがオススメです。
0024名無しさんNGNG
技術評論社のはじめてのCって検索しても出てこなかったんですが,
はじめてのC++なら近くの本屋にありました.どっか違うんですか?
0025たぶNGNG
K&R のコードって、
関数の中で、使う関数を宣言してるんだけど
この書き方って普通なの?
例えば、
void qsort(...)
{
int i@` last; //これは変数
void swap(void *v[]@` int@` int); //関数の宣言
...
}
こんなのって使うものでしょうか?

普通は関数のプロトタイプを
関数の外に置くと思うんだけど。
0026名無しさんNGNG
スコープの問題じゃないの?

関数のプロトタイプを関数の外に置くと、
どの関数からも使えて、
関数のプロトタイプを関数の中に置くと、
その関数にしか使えない。

カプセル化をしたかったんじゃない?
0027umaNGNG
K & R が入門書としていいかどうかは別として、
#入門書は K & R しかもってないから比較できない
一読はしておくべきだと思う。

ANSI 準拠とかうたっている本にも、
void main(void)
なんて書いてあったりするからね。

それと、あまりにもやさしい本だけで学習するのは危険。
0028K&Rは別として、NGNG
Cって、入門書ばかりですね。
役立ちそうな本って、オライリーの『C実践プログラミング』しか
知らないのですが、なんかいいやつありますか?
0029たぶNGNG
>スコープの問題じゃないの?
スコープについて調べてみると、確かにK&Rにそう書いて
ありました!

>カプセル化をしたかったんじゃない?
K&Rのソースコードってこういう説明がなかったり
するんですよね。

>オライリーの『C実践プログラミング』
これも入門書ですよね。わたしが持ってるのは 同じ本の
第1版を訳した「現実的なCプログラミング」ですけど
これはよかったです。コンパイラへの記述もあったから。
K&Rは第1章だけは簡単だけど、それでも
標準入出力へのリダイレクトと、コンパイル方法
の説明がないですからね。リダイレクトについては
後の方の章にあるけど普通最初にそこは読まないぞ。
「はじめてのC」は第3版でも、MS-DOS時代のだから
少し古いような。でもソースコード1行づつ説明が
あるのはよいかな。
0030たぶNGNG
>スコープの問題じゃないの?
スコープについて調べてみると、確かにK&Rにそう書いて
ありました!

>カプセル化をしたかったんじゃない?
K&Rのソースコードってこういう説明がなかったり
するんですよね。

>オライリーの『C実践プログラミング』
これも入門書ですよね。わたしが持ってるのは 同じ本の
第1版を訳した「現実的なCプログラミング」ですけど
これはよかったです。コンパイラへの記述もあったから。
K&Rは第1章だけは簡単だけど、それでも
標準入出力へのリダイレクトと、コンパイル方法
の説明がないですからね。リダイレクトについては
後の方の章にあるけど普通最初にそこは読まないぞ。
「はじめてのC」は第3版でも、MS-DOS時代のだから
少し古いような。でもソースコード1行づつ説明が
あるのはよいかな。
003126NGNG
私からもおすすめの本をいくつか紹介します。

「はじめてのC」を私も入門書として使っていました。
これに物足りなくなったので、次は、
「第2種情報処理試験合格ゼミ(4) C言語の総合研究」
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=371
を使ってます。第2種のテキストにしとくには、
もったいない本です。

「現実的なCプログラミング」も好きですね。
K&Rは辞書代わりとして持っておくことをお勧めします。

「はじめてのC」のプログラミング例で、
条件文の条件が冗長なものがあったと思います。
今、その本が手元にないんで、うる覚えなんですが、
真か偽かを表す変数をさらに真か偽かテストする
ような条件文だったと思います。
003226NGNG
これをパクッって、教官に提出して叱られた記憶があります。

1冊の本で1つの分野の勉強をすまそうと考えないように
しましょう。本をけちってはいけません。
003326NGNG
「はじめてのC」はポインタのポインタの記述がなかったですよね。
0034名無しさんNGNG
unixのmanででてくる文を日本語で本にしたようなの
ってないかなぁ?
0035umaNGNG
>unixのmanででてくる文を日本語で本にしたようなの

平林雅英 "新 ANSI C言語辞典"@` 技術評論社@` 1997

でいいんじゃないの?
003626NGNG
「はじめてのC 改訂第3版」
p.58

#include<stdio.h>

main()
{
int c;
while(!((c=getchar())==EOF))putchar(c);
}

このプログラムのwhile文のところは
while((c=getchar())!=EOF)putchar(c);
の方がいいですよね。
0037んーNGNG
優先順位考えにゃならん(オレ、きっちりは暗記してない)演算子が
いっこ減るわけだから、その点は良いと思うけど。

場合によるんでは?
0038>36NGNG
どっちでもいい。
コンパイル結果が同じにならないコンパイラは捨てろ
003937@`38NGNG
同感だけど、タイピングが3回節約出来るので36さんを支持!
0040名無しさんNGNG
俺としては
while(1){
 c = getchar();
 if( c == EOF )
  break;
 putchar(c);
}
と書いて欲しい。理由は目が痛くなるから。
0041umaNGNG
目が痛くならない人は、C = getchar() は
while の継続条件式の中にいれたほうがいい。

今回のプログラムだと 40 さんのでもわかるけど、ループの中が複雑に
なると、わかりにくくなる。

それと、元の文についてだけど、
while ((c = getchar()) != EOF)
 putchar(c);
というふうに、ループの文は、改行して書いたほうがわかりやすいと思う。
0042ANTI-CNGNG
int c = getchar();
while (c != EOF) {
 putchar(c);
 c = getchar();
}

がいい。
■ このスレッドは過去ログ倉庫に格納されています