- ベストアンサー
JavaからCへ
僕は今までJavaを勉強していたのですが、 つい最近になって、C言語に手をつけ始めました。 Javaを知っていればC言語は結構とっつきやすいのではないかと思って始めたのですが、Javaに慣れすぎたせいか、C言語の文法がどうもしっくりきません。 特に関数あたりが・・・・。 C言語の関数って、Javaでいうところのメソッドですよね? 僕はそのように解釈しているのですが、あまり自信がないので、ご存知の方がいましたらどなたか教えてください。 あと、Javaを学習した人のためのC言語の本、もしくはC言語を学んだ人のためのJavaの本がありましたら教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 CからJavaという人がほとんど(私もそう)だと思うのですが、逆もいらっしゃる のですね。今はJavaが前面に出てきてしまっているからそうなのかな? Javaは最初に覚える言語としてもよい言語ですしね。 文法自体はほとんど同じですよね。 おっしゃる通りC言語の関数はJavaのメソッドにあたります。 クラスという考え方はありませんが、別ファイルであっても1つのクラス中に メソッドをたくさん羅列して記述するようなイメージだと思います。 だから同じ名前の関数はあってはいけません。 あと、C言語の肝は何と言ってもポインタでしょう。諸刃の剣となるおそれも ありますが、C言語ではなくてはならない非常に大事なポイントです。 本は「JavaプログラマーのためのC言語入門」があります。 下記のURLです。このHPでも結構解説していますよ。 頑張ってください。
その他の回答 (2)
- xinman
- ベストアンサー率30% (25/83)
>C言語の関数って、Javaでいうところのメソッドですよね? >僕はそのように解釈しているのですが、あまり自信がないので、ご存知の方がいましたらどなたか教えてください。 この考え方でOKです。 この場合、Javaのクラスにあたるものが、C言語で作成されたプログラム全体でひとつのクラスと考えればよいでしょう。 C言語のプログラムには、main関数、他の関数、グローバル変数などがありますが、 Javaのプログラムでは、mainメソッド、他のメソッド、フィールドに対応しているものと考えてみましょう。 >Javaを学習した人のためのC言語の本、もしくはC言語を学んだ人のためのJavaの本がありましたら教えてください。 ゴメンナサイ。こちらについては、わからないので他の回答者に任せます。
補足
うおっ、わかりやすい!! やはり、関数=メソッドと解釈してよかったんですね。 ん?そういえば、少し前にSwingに関するコンストラクタについて質問をしたことがありましたが、その時も確かxinmanさんが分かりやすく答えてくれたような気が・・・。またまたお世話になっちゃいましたね。
- shigatsu
- ベストアンサー率26% (511/1924)
C言語ってクラスという考えが無いんですよね。C++なら有るんですけど・・・ メソッドが羅列してある。 メンバ変数は無いのでグローバル変数、もしくは構造体にする。 私もあまりJavaはやってないのでこんな感じでしょうか?
補足
そうですね。ポインタがやまですよね。 ついさっき、こないだ買ってきた本でポインタの所を読んでいたんですけれども、読み進めていくうちに段々いらいらしてきて、結局こうしてネットに逃げてきてしまいました。(笑) MMPichuさん、 分かりやすいご説明、そして今の僕がとても必要としている本、サイトを御紹介していただき本当にありがとうございました。