• 締切済み

C言語とC++はどんな関係になる

のでしょうか? 初心者です。C言語を学習しようと思っています。 C++はCの上位関係にあるのでしょうか? よくわかりません。よろしくです。

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

何をもって上位関係にあるとするかによりますが、もはや両者は別物だと考えた方がよいでしょう。 ただし、お互いに連携しながら発展してきていますし、両者に共通のヘッダファイルを記述することも可能です。 学習に関しては、目的によってどういう順番で学習すべきかが変わってきます。 最終的にC++だけ使えればよいのであれば、Cには関わらずにC++だけを勉強すればよいと思います。 最終的にCだけを使えればよいのであれば、C++には関わらずにCだけを勉強すればよいと思います。 最終的に両方を使えるようになりたいのであれば、まずはCをしっかり習得してからC++を勉強するとよいでしょう。

Water_5
質問者

補足

マイクロソフトはVisualC++とか言っています。 C++はマイクロソフトが開発したのでしょうか?

回答No.2

C++はC言語より出てきて、進化を遂げ、もはや別物になったと思ったほうが自然なC++のコードが書けると思います。 > C++はCの上位関係にあるのでしょうか? どちらとも言えないと思います。 C++はC言語をオブジェクト指向を扱えるようにと発展させたものなので、#1の回答にもあるように、C++でC言語の文法を扱え、C++のコンパイラーでC言語のコードをコンパイルすることも可能です。逆に、extern "C"さえ付ければ、CコンパイラーでコンパイルしたものをC++から使用することも可能です。 ただ、自然なC++のコードは自然なC言語のコードの上位概念にならないと思います。もちろん、両者に共通点はありますが。 C++で扱えるC言語の文法には、C言語風のキャストなど、C++では使わないほうがよいものもあります。また、極力 STL (標準テンプレートライブラリー) を使って書いたほうがC++として自然なコードになります。C言語ではポインターを意識してプログラムを書くのが当たり前ですが、C++ではイテレーターなどで隠されているので、ライブラリーでも作らない限り、あまりポインターを意識することは無いのではないでしょうか。 というわけで、C++はC言語の多くを内包しますが、自然なC++のコードを書こうと思ったらそのことを忘れて、C++らしい書き方をしたほうがよいと思います。

Water_5
質問者

補足

こんにちは。そうですか。C語もC++も知らないので そのあたりの感覚がわかりませんが、はやくそういう発言が 出来る身分になりたいものです。 しかし、その前にはつらい学習を乗り越えなければならず。。。。

回答No.1

C++はCを"ほぼ"包含するので、 Cコードは"ほぼ"C++コンパイラでコンパイルできます。

Water_5
質問者

補足

こんにちは。なるほどそうですか。それなら C言語で学習してC++コンパイラーでコンパイルすればよいのですね。

関連するQ&A

  • C言語を勉強したいのですが^-^

    大学のとき少しだけC言語やったときはつまらんと思って 単位取得しなかったのですが、パソコン関係の仕事をするようになって C言語の興味が増しました。 まったくの初心者ですが、あまりお金をかけないでC言語を学習したいです。お勧めの書籍等々教えてくだされば幸いです^^

  • C言語初心者ですが・・・

    大学のとき少しだけC言語やったときはつまらんと思って 単位取得しなかったのですが、パソコン関係の仕事をするようになって C言語の興味が増しました。 まったくの初心者ですが、あまりお金をかけないでC言語を学習したいです。お勧めの書籍等々教えてくだされば幸いです^^

  • C言語について

    C言語初心者です。 「かんたんC言語」という書籍で学習しております。 コマンドプロンプトでのプログラムの実行方法がよくわかりません。 教えて頂けないでしょうか?

  • C言語とJAVA言語について

    一通りC言語を学習したのちで、最近JAVA言語をかじり始めたのですが、C言語とJAVA言語の違いが今一つ分かりません。違いをできるだけ多く、JAVA言語初心者である私に分かるレベルで教えてもらえないでしょうか。よろしくお願いいたします。

    • ベストアンサー
    • Java
  • C言語の勉強法

    今はパソコン歴1年でエクセルを少しする程度の初心者です。 C言語を学習学習してプログラムの仕事をしようと思っています。 入門書を何冊か買い、目を通していますが本屋に行くととてもたくさんの種類の教本が並んでいて中身を見てもなかなか勉強計画がイメージできません。とりあえず一番解りやすそうな図解の本や入門書、パソコン関係のほんを乱読しています。それにwindows98seでもパソコンで実践練習ができるそうなのでやってみようと思っています。             どんなことでもいいのでC言語学習に役立つ知識をご存知でしたら教えてください。

  • C言語の基礎

    初心者でも、C言語の基礎をしっかり学習 出来る参考書を教えて欲しいです。 IT系の会社に入って、初常駐になりそうなんですが その環境がC言語なんです。 それで勉強しようと思っていますが、参考書が色々あって どれがいいのか迷ってしまって……。 ちなみに、私の言語経験はJAVAを2ヶ月です。 希望としては、基本をしっかり学べる物、 また絵などが多くイメージしやすい物がいいです。 何かいい参考書やWebサイト等ご存知でしたら教えて頂きたいです。

  • C言語を1から始めるのですが・・・。

    学校でこれからC言語を学習することになっているのですが、(高1で す)3年間ずっとC言語をやり続けるので、絶対に好成績がとれるよう に、そして将来なにか役立てられる時があれば役立てたいのでしっかり マスターしたいんです。 そこでC言語を最初から学べる本を買おうと思うのですが、何かお勧め の本はありますでしょうか? 本じゃなくても、「自分はこうやってCを学んだよ」「このサイトはと てもわかりやすい」などなど、どんな事でも構いませんので是非アドバ イスよろしくお願い致します。

  • C言語、C+、C++、C#の違い

    C言語、C+、C++、C#の違いがよくわかりません。 自分でも調べてみましたが、「オブジェクト指向」という言葉が出てきて、よくわかりません。 わかりやすく教えていただけたら幸いです。 初心者がプログラミング言語を始めるならどの言語がいいですか? 幅広い分野で活用でき、初心者でもわかりやすい言語がいいのです。 私は、C言語、C+、C++、C#のどれかを勉強しようと考えているのですが、この中の言語ならどれがいいでしょうか?もちろんこの中の言語以外に初心者にわかりやすく幅広い分野で活用できる言語があればそちらにしようと思います。ありましたら教えてください。

  • C言語

    今C言語の基本について学習しているのですが… 初心者なのでまったくわかりません。 #include<stdio.h> int main() char *p,*q; char s[27]="abcdefghijklmnopqrstuvwxyz" char h[5]="GHIJK" 【 】 printf("%c"\n,p); printf("%c"\n,q); return(0); } この【 】の中に何がくるのか分かる方がいたらぜひ教えてほしいですm(__)m よろしくおねがいします。

  • C言語を始めるには?

    私はC言語に関して全くの初心者です。 これからC言語の勉強を始めたいのですが、 全くの初心者でもわかるようなサイトがあれば 教えて下さい。 お勧めのソフトなどがあれば教えて下さい。 まず何から手をつけたら良いのでしょうか? どうにかして理解したいのです。 回答お願いします。