工学部情報学科1回生の者です。大学の授業で半年間C言語を一通り学んで、初歩的な(簡単な)プログラムならなんとか作れるようになりました。Cをマスターしていくためには、自分でどんどんプログラムを組んで練習する必要があると思うのですが、どういう点を意識しながら(注意しながら)すれば良いかなど、具体的な練習方法のアドバイスがあればお願いします。また、練習用の本で、お勧めのがあれば教えてほしいです。一応、今、手元にあるのは、3冊です。
・「プログラミング言語C」共立出版(かなり有名な本らしく大学で買わされたのですが、授業ではレジュメが配布されていてあまり使いませんでした。せっかく買ったので、何度も読んだのですが、私自身としては少し難解で、なかなか理解できないです。)
・改訂 新C言語入門ビギナー編 ソフトバンク(ビギナー編ということもあり、大変分かりやすかったです。)
・改訂 新C言語入門シニア編 ソフトバンク(ビギナー編を読んだときに、もう少し知りたい項目があるときに参照した程度なので、まだあまり読んでいません。なかなか重宝しそうな本なのですが、やっぱり読んだだけでは実際に使えないと思って質問しました。)

このQ&Aに関連する最新のQ&A

A 回答 (5件)

Cのマスターへのアドバイス、、ですね?



ほんとの基礎の基礎だけなら、たとえば関数の呼び方とか、ifやらwhileやらの
使い方、、それだけならそこまですることもないでしょうが、それじゃ、
「マスター」したとは言いがたいですよね。。
ある程度のアプリケーションを作れるようになりたいのですよね?

まずは、簡単なものから、、はもちろんで、他の方のコメントも
ありますので、別のこと書きます。

環境が大事です。

ご存知かと思いますが、C言語はもともとはUNIXのために作られた言語です。
OSを記述する目的で作られているので、OS/ハードウェアに近い部分、
に依存するところも多々あります。。。
場合によってはOSをコケさせるようなプログラムでも書けたりします。。
BasicやJavaのような高級な、OSにとって安全な言語と違い、
おとなしく文法さえ知っていれば良い、、というのとはちょっと異質です。
実行時のエラーのある行、、なんて、OSやコンパイラはもちろん教えてくれません。

特に、Cではポインタ操作で悩むことがたくさんでてくるので、
そのときに、そのOSでアプリのメモリの管理がどうなっているのか、
というところが頭に入っていないと解決できない場合もあります。
スタックとかヒープとか、意味わかりますか?
関数コール時に、どのようにして引数が呼び出される関数に渡るのか?とか、
構造体の宣言と、構造体のポインタにmallocするのとどう違うのか?とか、、
freeってなんだ?とか、、

お手持ちのPCにLinuxを入れて、その環境でいろいろと試されることを
お勧めします。安いですしね。雑誌の付録で十分です。
学生さんであれば、WinとVC++でも安価に手に入るかと思いますが、
いきなりVC++は、ちょっとお勧めできないです。。。
(DOSやWinでのプログラミングは、最初はいいですが、「余計なこと」にすぐハマります)

あ、Linux(UNIX)の操作方法はご存知ですか? (^-^;
学生さんということで、ついでですからLinux(UNIX)の使い方は覚えておいた
ほうが得です。。

C言語自体を解説している本は、すでにお持ちのプログラミング言語Cで
十分です。
それとは別にLinux(UNIX)でプログラミングする、、という趣旨の本を
1冊購入されてみてはいかがでしょうか?
Linux(UNIX)そのものをご存知ないなら、それ自体の入門書もいりますね。

まずは、あの本のとおりに、hello worldの表示から、、
そのうちに、ファイルの入出力、プロセスの作成、通信、Xウィンドウ、、

Xウィンドウを使って1つゲームでも作れるようになれば、
その後はまず、何をやってもつまづくことはないでしょう・・・。
そのくらいになっていれば、VC++で(CじゃなくてC++でも)、MFCで
Winのプログラミングをはじめても、ぜんぜん大丈夫。

目的がCの習得ということであっても、Cだけ勉強されるより、
多角的にいろいろと覚えていくほうが、それぞれに理解が補足され、
より深いところまでたどり着けると思います。

いそがば、まわれ、、ですね。
学生さんならなおさらです。。。。

いまからいっぱい本を読みましょう。いろんなこと試しましょう。
いっぱい失敗しましょう。。。
    • good
    • 0

現状、どういう環境でコンパイラを動かしているのか判りませんが、とりあえず基本という事でDOSでやっている事を前提にします。



とりあえずフィルタープログラムなんか作ってみたらいかがでしょう?
コマンドライン解析、ファイルの入出力、文字列操作なんかがメインでしょうか?
まず自分で「こんなやつ」って仕様を決めて、ヘンな仕様でもとりあえずその通りに作るってのを続けると、仕事になってもクセになっていいんじゃないかな。
    • good
    • 0

当面はしっかりした本が1冊あれば十分です。

プログラミングはどちらかというと習うより慣れろの世界だと思います。とにかく自分でオリジナリティのあるコードを書かないことには上達しません。
最初のうちはあまりスタイルについては深く考えず自分の思うがままにいろいろなプログラムを書いてみるのがいいと思います。いろいろなところにあるサンプルコードをお手本にしてこれはいいと思うものはどんどん取り入れましょう。サンプルプログラムで不満なところを自分流に改造するのも非常に勉強になります。
ちょっと慣れてきたら構造化プログラミングをキーワードに調べてみることをお勧めします。また、高機能なアプリケーションを作りたいのならオブジェクト指向プログラミングについても調べるといいでしょう。
このあたりの段階からは自分がどんなプログラムを作りたいのかを意識しながら勉強する方向を決めたほうがいいと思います。なんでもかんでもやろうとすると現在の状況では最先端に追いつくのは難しいです。広く浅くも非常に重要なのですが、どこかに自分の得意分野を作っておいたほうがいいです。
    • good
    • 0

前にも同じような質問に同じような回答をしました。



まず、「プログラミング言語C」は第2版ですよね。
第2版ならANSI-C準拠なのでコンソールプログラム(Windows:コマンドプロンプト/MS-DOSプロンプト、Macintosh:MPWシェル、etc)ならほとんどの環境に対応しています。
純粋にC言語(ANSI-C)を勉強するならグラフィックやデバイスなど機種依存部分を排除して勉強した方が良いので「プログラミング言語C 第2版」以外の参考書は不要でしょう。

「新C言語入門…」のシリーズはゴミ箱に捨てましょう。
販売部数が多いことは内容が良いことに直結しません。
スーパービギナーやビギナー向けの本の前半部分でscanfを使うような著者は信用すべきではありません。

「プログラミング言語C 第2版」は時間をかけて読み進めば決して難しい本ではありません。
訳者のせいで“わかりにくい表現が多い”本であることは間違い無いのですが…。
出来れば原書と併読することをオススメします。
カーニハンの説明の上手さを石田氏が台無しにしていることがわかると思います。

参考URLは私の書いた書評です。
お暇なときにどうぞ

参考URL:http://www.geocities.co.jp/SiliconValley-PaloAlt …
    • good
    • 0

「プログラミング言語C」(K&R)は、Cを作った人の本なので、専門的にCをやろうと思ったら、これしかありません。

というかこれで事足ります。
ただ、元々 unix用なので、unixの環境が無いとつらいかもしれません。
あとは、処理系依存のライブラリの解説書(VCやBCのオンラインヘルプでもかまいませんが glibc等の解説書でもいいでしょう)で調べながらプログラムを作ることになります。

言語は慣れですが、慣れる前にきちんとした基本的な知識(コンピューターの原理など)を身につけてないと全く役に立ちません。
まずは、コンピューターの原理(情報処理の原理)を詳しく解説してある本を熟読しましょう。大学の図書館にはいろいろそろっているはずです。

コンピューターの原理をきちんと身につければ、どんな言語だろうと、理解するのは速いと思います。
基本を身につけると、あとはおもしろいように理解できてしまいます。本当におもしろくなってこういうことを仕事にしてしまう場合もあるでしょう。

はっきり言って、ほとんどの入門書は役に立たないと思います。

これは、あなたが情報工学系の学生なので、将来ソフトウェアシステム(情報システム)関連の仕事を選ぶであろうという前提で書きました。

良いエンジニアになることをお祈りします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報