★C言語とC++言語、どちらが簡単ですか?


※面白半分な質問です。(ネタ歓迎! 勉強になるコンテンツの紹介も猶歓迎)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/03/03 00:04:31
  • 終了:--

回答(18件)

id:PPPz No.1

PPPz回答回数1124ベストアンサー獲得回数132006/02/17 00:09:19

ポイント70pt

URLはダミーです。


どちらが簡単か?といえば、Cでしょうね。

ただ、Cをいくらできての、言語の基本がわかるだけで、じっさいにプログラミングができるかというと、実にしょっぱいものしかできないですよね。

どうせ勉強するなら、C++でしょう。


ただ、C++ならJAVAの方が勉強しがいがあると思いますけど。


あまり参考になりませんね。すみません。

id:Kityo

 「URLはダミーです」なんてご謙遜されながら、真面目なコンテンツだと思います。

 Javaもたしなむ程度には勉強しましたが、あまり好きになれませんでした。(Swingが入った頃)

 Run any whereは魅力だと思っていまして、Javaバイトコードを出力するC++言語のコンパイラ製品がアナウンスされたら、多分飛びついて試すでしょうね。

 その製品では、「extern ”C”」ならぬ「extern ”Java”」的な言語サポートがあってJavaの膨大なクラスライブラリが使い放題…だったら嬉しいですね。

 よかったらこっちの質問にもお答え下さい。⇒http://www.hatena.ne.jp/1139833766

2006/02/17 00:32:45
id:jyouseki No.2

jyouseki回答回数5251ベストアンサー獲得回数382006/02/17 00:11:49

ポイント109pt

C++

これを顔文字としてみると、Cの部分が耳で++の部分は疲れ果てた眼のように見えます。

ですから、C++は難しいです。

id:Kityo

 すげぇっ!

 琴線に触れる回答です。

 仰る通りです、1本取られました。

 もう1本でも思いついたら、是非再回答して下さい。待っています。

2006/02/17 00:38:22
id:jyouseki No.3

jyouseki回答回数5251ベストアンサー獲得回数382006/02/17 01:36:48

ポイント31pt

http://www.pauline.or.jp/mame/mame078.html

キリスト教 マメ知識

C++

今、Cさんは亡くなったキリスト教徒の方の十字架のお墓の前で故人を追悼しています。

決して簡単ではない複雑な心境にある様子です。

id:Kityo

 私から「是非に」と言っておいて恐縮なのですが、最初のインパクトよりは劣って感じられました。

 よかったらおとなり質問になっている奴にもご回答下さい。待っています。

2006/02/17 23:20:35
id:hamster078 No.4

hamster078回答回数587ベストアンサー獲得回数42006/02/17 02:00:34

ポイント6pt

どちらが簡単かというより、どちらが必要かではないでしょうか。

一般的にはC++を勉強するにはCの知識が前提とされるとありますが、

良書を使えばそんなことはありません。

C++はCの限界をとりのぞいた仕様ですので、逆にCをはじめに勉強すると、

C++で拡張された部分がわからなくて、Cの範囲でしか使えなくなったり

するようです。

だから、C++を使うつもりなら、CをやらずにC++を直接やった方がいい。

しかし、Cでないとだめな分野、あるいはCで書かれているソフトをいじりたい

場合は、当然Cをやらなくてはなりません。

つまり、プログラミングは漫然と目的もなく始めてもだめということです。

CだろうがC++だろうがphpだろうがperlだろうが、必要なものから

はじめればいいわけで、必要なものがないなら、教科書を買ってもむだです。

id:Kityo

 ダミーURLなのは残念です。

 よい先生に恵まれればC++言語のほうが簡単…と言うお答でしょうか?

 概ね同感です。

 私がC++言語を学んだのは独学でしたが、ある程度使い込んでみての感想として特に印象的だったのは、malloc()/free()あたりの機能を使うコードをnew/delete演算子で書き換えるだけでもの凄く簡単になる(簡単に思える)ことでした。

 この点は今振り返っても不思議で、「malloc()の1行とnewの1行のそれぞれについてプログラマとして意図して書き込んでいる情報量は同じなのに」「free()の1行とdeleteの1行のそれぞれについてプログラマとして意図して書き込んでいる情報量は同じなのに(※実際にはdeleteの1行のほうがむしろ多くの情報を書かされている)」new/deleteのほうが簡単な理由を(私が先生の立場になった場合)上手に説明出来ません。

 上手に説明は出来ませんが、きっと構文的に洗練されているからなのでしょう。(C言語よりも簡単になっている一例)

 C言語とC++言語を使い分ける必要がある場合、使い分けるだけの度量/スキルは、C言語⇒C++言語の順に実用した者だけの特権のようなものだと思います。(そのようなエンジニアは、傾向としては今後減る一方の貴重な人材の筈)

 C++言語を先に実用してからC言語を学ぶのは、相当な忍耐が要るでしょうから。

 最終的に非常にマニアックな領域までC++言語を理解しようとするならば(職業プログラマの100人に1人くらいはこれを求められる)、歴史的経緯を含めてC言語への理解は必須と言えると思います。

 ですので、この業界にたくさんのよい先生が降臨して欲しいものです。

2006/02/18 00:28:20
id:n4k4moo No.5

n4k4moo回答回数5ベストアンサー獲得回数02006/02/17 09:59:35

ポイント35pt

http://www9.plala.or.jp/sgwr-t/

初心者のためのポイント学習C言語

URLはイマイチです  ○| ̄|_


簡単なのはCですね。

CとC++は共通するところも多く、Cをやっておけば

C++を習得しやすいと思います。

差分だけ覚えればいいですから。

id:Kityo

 ご紹介頂いたURLは、おとなり質問になっている奴(1139833766)の1番で紹介して貰った奴と同じでした。残念。

 イマイチ…とおっしゃってますが、感じのいいページだと思いますよ。

 そうそう「差分だけ覚えればいい」って、感じますよね!

 文法で見ると「全く別物じゃん」と思えるほど違うのに、人間って不思議ですよね?

(ここで人間が不思議と思うのは職業病。人間から見たらちょっとの差分に思える事実を中心に考えるべき。)

2006/02/18 00:42:40
id:ToMmY No.6

ToMmY回答回数656ベストアンサー獲得回数192006/02/20 08:15:23

ポイント30pt

どう考えてもC言語です。習得は容易ですし、コードを縮める裏技が多数あります。複雑なものを作るときは当然C++のほうがきれいに見えますが、Cのほうが簡単な処理の繰り返しで万人が理解できるでしょう。どんな低レベルアプリケーションから3DゲームまでC言語だけで事足ります。C++はCがわからないと厳しい点が多いらしいです。

id:Kityo

 どう考えても?

 …と言われると疑いたくなっちゃいます。(ゴメンナサイ)

 基本的に綺麗に書かれている(作法的に良い)C言語ソースコードはC++言語ソースコードな訳ですから、言語仕様の端から端まで使いこなそうと思わなければ、自由度が高いだけC++言語のほうが簡単なのでは?

 …とか、思いませんか?

 例えばC言語の関数では、値渡しでしか引数を渡せません。(C言語オンリーのプログラマの大多数が、このことを忘れているか/知らないような気がします)

 C++言語なら、参照渡しがサポートされています。

 ByValとByRefを使い分けることを知っているVisualBasicプログラマにとっては、この点ではC++言語のほうが簡単かも知れません。

 とは言え確かに、C++言語には(何故か)言語仕様の端から端まで使いこなさないといけないとプログラマをして信じせしめる様な魔力があります。(不思議ですね。ビヤーンさんの『第3版』を読む限りでも、端から端まで知らなくても分かる範囲で使って構わないとビヤーンさんご自身が繰り返しているンですが。)

2006/02/21 02:05:41
id:kaminazero No.7

kaminazero回答回数71ベストアンサー獲得回数02006/02/20 12:46:26

ポイント11pt

http://ja.wikipedia.org/wiki/謌千クセ隧穂セ。:detail]

学校の先生には細かくつける方もいますね。


Cより優秀だからC++


なので、Cの方が簡単ですね。

id:Kityo

 ご紹介頂いたURLって化けていませんか?

 コメントの文面だけでは、Cより優秀なC++だから、優秀なC++のほうが使う人にとってフレンドリーな筈ではないかなぁ…と思います。

 「学校の先生には細かくつける方もいますね」の辺りに何か面白いウンチクがありそうで、化けてないURLを紹介して欲しいです。(=再回答を希望します!)

2006/02/21 02:14:38
id:elecsta No.8

elecsta回答回数23ベストアンサー獲得回数02006/02/20 14:15:41

ポイント122pt

http://www.kmonos.net/alang/d/

プログラミング言語 D

URLはほぼダミーです。


C++のほうが簡単です。

C言語の文法で書かれたソースをC++に持っていくことは容易ですが、逆は難しいからです。つまり、C言語のほうが文法的制限が厳しいんですね。

たとえば、スコープの中での変数宣言はあらゆる命令文より前でなければならないなど、C言語は辛いことばかりです。


ただ、マニアックな領域までC++を習得しようとすると、コンパイラごとの特徴や同じコンパイラでもバージョンによる挙動の違いなどを意識してコードを分岐させたりしないとダメで、本当に泥臭い世界がやってきます。

例えば、template の扱いなどはコンパイラによってまちまちで、コンパイラオプションをつけたりつけなかったりしないと上手くコンパイルできないなど、途端に嫌な難しさが発生します。


で、質問内容とは関係ないですが、どちらか一方だけ勉強するならC言語をお奨めします。なぜならC言語の文法で書いたソースをC++言語だと言い張ることは可能ですが、逆は難しい場合が多いからです。

id:Kityo

 おっしゃる通り、C++言語のほうが簡単な筈だと思います。

 でも何故か、結果としてC++言語には変な魔力があって、C++言語は難しいと言う意見も強いンですよね。(この質問の6番の回答への私のコメント参照)

※私の質問ともelecstaさんの回答とも関係ないンですが、今のところ私はD言語へは食指が伸びません。正直に言うと、嫌いに感じています。熱烈なファンも多いのでしょうが。

2006/02/21 02:27:14
id:yuukie No.9

yuukie回答回数8ベストアンサー獲得回数02006/02/20 22:53:03

ポイント5pt

C++はC言語に比べ、宣言したりしなければならない事が多く、コードが長くなりやすい傾向が有ります。その点ではCの方が簡単なんでしょうか。場合によってはC++のほうが書きやすいのも有りますが…。

ですのでC++だとCより長いコードが書けますから、就職試験なんかで「いままで最大で何行のコードを書きましたか?」というのがあれば大分稼げそうです。

id:Kityo

 私が就職活動中の時点で聞かれたら、1500行ほどでしたっけ。

 BASIC言語で、マルチステートメント(セミコロン「;」で区切る)をバリバリ使っていましたから、命令数はその5倍以上あったでしょう。

 yuukieさんの「about」ページを覗いて来ました。

 お若い様子ですので、行番号のついたBASIC言語なんて知らないでしょうね。

 当時のBASIC言語で、1行の文字数とか分岐の都合とかの限界一杯までマルチステートメントした1500行のコメントなんて1文字も入っていない「大作」…。

 今となっては懐かしい思い出の中の物品ですが、自分のことながら、アマチュアは恐ろしいことをするなぁ…と思います。

2006/02/21 02:50:42
id:studiokingyo No.10

d金魚回答回数47ベストアンサー獲得回数22006/02/22 07:17:09

ポイント20pt

http://www.eventhelix.com/RealtimeMantra/basics/ComparingCPPAndC...

C++ vs C: Comparing C and C++ Performance (C++ Internals)

URL群はgoogle:C vs C++で検索した結果です。

VC6でのC++ではthrowされるとどこでエラーが起きたのかトレースできません。(私が知らないだけなのかもしれませんが・・・)なのでC言語の方がデバッグしやすいです。


また、C言語の方が覚える文法が少ないのでコーディングに関する概念も少ないので簡単にプログラミングはできます。(概念が少ないので複雑な処理を要求をされたらC言語で記述するのは骨が折れます。例:switch分岐)


ですが、C++は文法が多いので覚えるのは骨が折れますが覚える概念が多いので複雑な処理を要求された時、様々な記述の仕方で簡便なコーディングでアプローチができます。(例:templateやfunctorやthrow try catch)


なので、何を指向するかによって簡単さが変わると思います。

http://www.eventhelix.com/RealtimeMantra/basics/ComparingCPPAndC...

C++ vs C  Performance Comparison (Virtual Functions, Inheritance and vtable access)

id:Kityo

 「文法が多いので覚えるのは骨が折れますが」とのこと。

 やっぱり、文法を全部覚えなきゃいけないと信じさせる魔力がC++言語にはあるのですね。

※「VC6でのC++ではthrowされるとどこでエラーが起きたのかトレースできません」⇒throwさせなければいいのに…、と思います。(笑)

2006/02/23 01:43:54
id:mouitchou No.11

mouitchou回答回数173ベストアンサー獲得回数52006/02/22 18:33:14

ポイント90pt

http://www1.cts.ne.jp/~clab/index.html

C言語講座:初級から中級まで

勉強になるURLとは無関係に、C++の方がはるかに難易度大です。

Cは勝手にころころ転がっていきますが、C++は二人がかりで引っ張っているではありませんか。

id:Kityo

 ご紹介頂いたURLのページには、C++言語が難しい(初めての学習でこの言語を選ぶと、挫折する可能性が…)とあります。

 同ページでは又、「Java言語がC言語に似ていること」が言及されていますが、Java言語の難しさ(簡単さ)については何も言及されていません。

 …同ページの文脈の中では多分、Java言語は(C++言語よりは)簡単であることになっている、と思います。

 Java言語の文法は、C++言語に比べるとコンパクトです。

 しかしC言語と比べてはるかに文法が大きいことについては、Java言語であれC++言語であれ大差ない印象を受けます。(詳しく分析したことはないですが、C:Java:C++=1:5:6とか。5でも6でも1の数倍って点は同じ…と言う趣旨)

 用意されている(されるべき)ライブラリやフレームワークの規模を考えると、Javaの世界のほうがC++言語の世界よりも「覚えるべきこと」は多いような気さえします。

 端から端まで覚えなきゃいけないように感じさせるのは、C++言語の特徴的な「魔力」であって、他の言語では(少なくともJava言語では)「別に全部は覚えなくても使えるよね?」って考えられるのですね。

※「C++は二人がかりで」⇒私にとってはスベっています。

※ご紹介頂いたURLから1クリックの位置にある「英単語に見える数字」はとても楽しめました。

2006/02/23 02:20:21
id:ske3 No.12

ske3回答回数15ベストアンサー獲得回数02006/02/22 20:21:23

ポイント320pt

better than C として使うのであれば,C++のほうが簡単(というか楽)だと思います。


オブジェクト指向の部分をまじめにやろうとすると非常に複雑だと思います。


URLは学生の頃,好きだった本の紹介です。

id:Kityo

 400日ものベテランはてな市民さんの初回答を頂けるとは、感動です!

 「ベターC」(better than C)。そのキーワードが投じられるのを待っていたのかも知れません。

 そうなんですよ。

 自分がC++言語を勉強し始めた時の印象も(参考書を買って読んだ訳ですが)、残りのページなんか読まなくても今すぐ様々なことがC言語(を使う)よりも簡単になる…と言う喜びの連続でした。

 だからこの問いに関しては、ストレートに無条件にC++言語が簡単な「筈」なのですよね…。

2006/02/23 02:45:03
id:rafile No.13

rafile回答回数662ベストアンサー獲得回数242006/02/24 00:23:28

ポイント19pt

簡単なのはCでしょうねぇ。アセンブラとの親和性がかなり高そうです。C++はガベージコレクションが大変そうです。まあ、チャレンジしたい気持ちも少しあるんですけどね。


って、作るのが簡単なのをきいているんですよねぇ?

id:Kityo

 ご回答ありがとうございます。

 …が、言語処理系を作るお立場で回答して頂いたのでしょうか?

 言語ツールを使って何かを作るお立場の回答ですよね!?

※ウィキペディア君のほうは、参考になるのかならないのか、アバウトなことが書いてありますね。

2006/02/25 01:12:33
id:tousenkyo No.14

tousenkyo回答回数37ベストアンサー獲得回数02006/02/24 01:09:39

ポイント21pt

C++

中学生の頃に流行った、

Aでキス、

Bで抱擁・・・

という順に従うと、

CはH。

C++は、その上を行く事になります。


ですから、当然Cの上まで行く方が難しいです。

id:Kityo

 王道の回答出ました!

※ダミーURLなのか、はてなにチューなのか微妙。

2006/02/25 01:20:10
id:ozonepapa No.15

ozonepapa回答回数288ベストアンサー獲得回数02006/02/24 02:16:17

ポイント60pt

私がC言語を始めたころのCコンパイラに近いです。すでに、プログラミングの経験はお持ちのようにお見受けしますが、こんなCコンパイラを使って(作って?)みられてはいかがでしょうか?

仕事でCも使いましたが、浮動小数点型、使ったことないですね。

おっと、質問は、CかC++のどちらが簡単かでしたね。

好きなのは、小さな仕様のC言語ですね。

既存のクラスを使うことを考えると、簡単なのはC++かもしれないですね。


「C言語」に一票でおねがいします。

id:Kityo

>「C言語」に一票でおねがいします。

 かしこまりました。って…、数えるの?

※ご紹介のURLの先のコンテンツは面白そうですね。眠くない日に後半を読んでみます。多分。

2006/02/25 01:41:52
id:hoshi10 No.16

hoshi10回答回数3ベストアンサー獲得回数02006/02/24 11:08:48

ポイント39pt

http://www.tokyodisneyresort.co.jp/tds/

東京ディズニーリゾート:東京ディズニーシー

シーとシープラプラですか。

ディズニーシーのアトラクションを目の前にして、プラプラとほっつき歩くだけなのは、結構難易度高いので、シーのほうがまだ簡単かな。

以上、私見ですが。

id:Kityo

 シーの前をプラプラですか。

 でも後置きインクリメントなので、シーでたっぷり遊んだ後でプラプラと歩くのは楽勝(異性の友達とであれば、相手によってはロマンチック)なのでは?

※東京ディズニーリゾートって言うのは、宿泊施設も含んでいるんですね。知りませんでした。

2006/02/25 01:57:10
id:tousenkyo No.17

tousenkyo回答回数37ベストアンサー獲得回数02006/02/26 17:47:09

ポイント25pt

C++

これを90度回転させて、Cを上にすると

フェギュアスケート・荒川静香選手の高速スピンに見えます。

(両腕は真横に開いて、片足は膝で90度に曲げて回っている)


金メダルの演技であるC++の方が高難度です。

id:Kityo

 ご紹介頂いたURLが秀逸ですね。

 はてなにとってもCなら「ご指定のページが見つかりません。」と捌けるのにC++だとInternal Server Errorなんですね。

2006/02/27 00:56:50
id:tententireman No.18

tententireman回答回数335ベストアンサー獲得回数02006/03/03 01:40:23

ポイント15pt

http://ja.wikipedia.org/wiki/

メインページ - Wikipedia

D言語


Cのほうが簡単です。率直に言って、C++のほうは複雑だからです。上に掲げたページにも同旨の記述があって、ほっとしました。(笑)


http://a.hatena.ne.jp/k_ahiru/

はてなアンテナ - D言語関係のアンテナ

id:Kityo

 tententiremanさんの中では、asm,C,C++の順に簡単なんですね。

 (ほぼ)スーパーセットであるC++言語のほうが簡単な筈なのに、何故か「全部覚えなきゃいけない」と信じさせる魔力がC++言語にはある!

 このせいで多くのヒトが「率直に言って複雑」と思うのですね。

 この点、薄々感じていたことなのですが、この質問を通じてはっきりとした言葉になりました。

♪この辺りで終了します! 回答して下さった皆さんありがとうございます!

2006/03/03 02:12:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません