ページ 11

C言語勉強法について

Posted: 2010年4月24日(土) 13:27
by ぽん
今年の4月から社会人になった者です。
5月中旬から会社でC言語を用いた研修が始まるのですが、C言語を詳しくやったことがないので少し予習してから臨みたいと考えています。

C言語のレベルとしては制御構造(if, while, for)あたりまでは一応できます。関数を作ったり、ポインタあたりから理解できていません。

こんな私に丁度いい参考書または問題集(プログラムは座学ではなく作ることが大事だと友人が言っていたので)を心優しいどなたか紹介して頂けないでしょうか?

また、自分くらいのレベルだとどのような勉強法が一番効果的でしょうか?

宜しくお願い致します。

Re:C言語勉強法について

Posted: 2010年4月24日(土) 14:01
by サウス
はじめまして

> また、自分くらいのレベルだとどのような勉強法が一番効果的でしょうか?

とりあえず、持っている参考書に書いてあるサンプルプログラムを自分で書いて、コンパイルして、
実行してみるのが効果的だと思います。

実行するまでに、エラーが起こればそれを解決する事で理解につながります。
または、重要だと思う部分を再利用してみたりする事で応用力も付くのではないでしょうか。

頑張ってください。

Re:C言語勉強法について

Posted: 2010年4月24日(土) 14:56
by なっきー
>ぽんさん
こんにちは。
私もまだまだ初心者でわからないことが多いので
偉そうに回答できる身分ではないので
適当に流してもらって構わないのです。

私の場合は参考書を三ヶ月掛けて四回読み、
本に書いてある内容を実際に作成してきました。
そのあとはネット上で落ちてるサンプルを
ダウンロードして読んで行きました。
他人の書いたソース(ダウンロードしてきた)を
読めるようになってきたら
今度は改造(関数化など)してみたりします。

これだけで結構知識は付いてきますよ。
私はいまここまでの段階です。

その次は自分のやってみたいことを勉強していけば
いいのではないでしょうか?
私はいまWinAPIとWinsockを勉強しています。

これから先長いかもしれませんが
お互い頑張りましょう^^

Re:C言語勉強法について

Posted: 2010年4月24日(土) 15:55
by やっくん
>参考書または問題集を心優しいどなたか紹介して頂けないでしょうか?

私はまずこちらの本で学習しました。『入門ANSI-C』石田晴久著
http://www.amazon.co.jp/%E5%85%A5%E9%96 ... 506&sr=1-1

入出力から制御構造、配列、関数、ポインタ、構造体(共用体)、ファイル操作、簡単なアルゴリズムまで扱っております。
この本は全てのサンプルソースが正しく入力さえすれば動く形で記載されているのが特徴です。
(打ち間違えしない限り実行ができる)
解説も入門者向けでわかりやすいです。
その分、細かい説明が省かれていたりしますがCプログラムを形式的に書けるようになる程度の内容は記載されています。
この本は練習問題がほとんどありません。
そのためサンプルソースをきちんと理解して打ち込まなければ知識が身につきません。


私は上記の本のサンプルソースを見ずに書けるレベルになったら次に紹介する本を使いました。
『明快C言語 実践編』柴田望洋著
http://www.amazon.co.jp/%E6%96%B0%E7%89 ... 320&sr=8-3

こちらの本は入門書を一通り理解した人向けの内容になっております。
説明も細かいところまで書かれており、理解することによって私はC言語のスキルが上がりました。
主に、見えないバグ(わかりづらいバグ)への対処、文字列とポインタ、ファイル処理、スタックとオーバーフロー、リスト構造、二分探索木などが記載されています。
ただ、こちらも練習問題が付いておりません。

Re:C言語勉強法について

Posted: 2010年4月25日(日) 23:21
by ぽん
皆さん返事が遅れてしまい申し訳ありません。。。
そして丁寧なご返事ありがとうございます。

>>サウスさん
参考書は持ってないんです・・・
でも参考書を買ってみてとりあえずサンプルプログラムを打ってみます!

>>なっきーさん
参考書を結構読んでらっしゃるんですね・・・ネットからのDLいいですね!問題も落ちてますもんね。やってみます^^

>>やっくんさん
参考書の紹介ありがとうございます!しかも丁寧に説明までしていただいて感無量です・・・
とりあえず上の参考書から始めてみようと思います。とりあえず手も動かさないといけないので読んだらすぐに類題プログラムを作ってみようと思います。