C言語はCだけで、C++やC#は別の言語です。
ただ、C++はCの拡張ですからCの直接の子孫とは言えるかも知れません。
VC++というのは、マイクロソフトが出しているC++の実装の一つですで、C++のコンパイラ、開発環境の製品の名前ですね。
Cはアセンブラに近いのでかなり高速に動くコードや、ハードウェア制御コードなどがかけます。が、機能的にはシンプルでいろいろと自分でコードを書く必要があります。ライブラリはありますが、Java等に比べれば貧弱で数は少ないです。
Cの特徴を生かしつつ、なるべく互換性を保ったまま機能拡張しオブジェクト指向の対応したのがC++です。
が、互換性を持ったまま機能拡張したのでかなり仕様が複雑になってます。また、拡張部はどうしても速度が落ちたりメモリを余分に使ったりしがちですので、アセンブラ変わりに使えない場合も出てます。(組み込み用途等)
C#はJavaとあまり違わないと思っていいです。ごく簡単なものならソースもそのまま使える場合もありそうですし。逆に、C,C++とはあまり似てません。まあ、JavaがCと似ている程度には似てるとは言えますが(^^;
#2の方の回答にもありますが、VC#(とVB.NETとVC++で出力をネイティブコードでなく、マネージコードを出力させた場合)は中間言語にコンパイルしてそれで動作するので、
そういう意味でもJavaと同じと言えます。
私が向くと思う言語はC++,C,C#ではこんな感じです。
十分マシンパワーのあるWindows(2000,XP等)上で動くプログラムを比較的お手軽に作るなら、C#。
Javaから楽に移行するならC#。
OSの機能をフルに使うなら、C,C++。
ちょっと非力なマシンで動作させるならC,C++。
Windows以外のOSなら事実上C,C++。
パワーのあるOS,マシン環境で高速に動作させ、比較的楽に作るならC++。
非力なマシン等で動作させるプログラムならC。
だいたいどこのOSでもコンパイラが存在するのがC。
ただ、Cのプロジェクトというのがどんなものか分かりませんが、それがCしか使わないのなら、
やはりCを学ぶべきだと思いますが。
この場合はC#は無関係なのでやる意味はありません。
お礼
なるほど!とても詳しい説明ありがとうございます。 今度Windowsサーバーで動作するアプリケーションを 作ることになりそうで、お客様からは要件だけ満たしていれば 開発言語など実装に関することは任せると言われてまして。 要するに言語の選択から検討するはめになってしまいまして、 ご相談した次第です。 私の今後のキャリアプラン的な意味からしてもC++でやってみたほうが よさそうかなぁと思っております。