本は数えるほどしかありません。
ここで大切なのは,推薦する理由ではないでしょうか?

C++ではなくCをやるメリットはとくにありません。
ただ、C++を勉強する前にCを勉強するメリットはありますよ。
皆さん,プログラミング言語を習得する時
まず小さなプログラムから始まり、次により大きな物,さらに次は・・・
としませんか?
そして,数を重ねるごとに、読みやすいプログラムが書けるようになりませんか?
もちろん時間がたてば、その間にいろいろな本を読み知識量が増えますが,
やはり,実際に自分で書いてみたという経験が大きいと思います。
つまり、順順に基礎固めをする必要があるといいたいのです。

実際に私が書くC++でCにはない機能といえば、クラスの一点でいいと思います。
(他の機能は特に重要ではないと思うので)
つまり、私がCと呼んでいる物はclassというキーワードのないC++のコードです。
そしてオブジェクト指向のエッセンスの全てがclassにあるといえます。
そういう意味では、オブジェクト指向の勉強を始めるまではclassを使はない方が
いいという事です。
もちろん最初からオブジェクト指向を取り込む勇気のある人がいれば
がんばってください。
個人的な意見として、やめたほうがいいと思われます。
Cにはポインタや、スッタク,ヒープといった理解しなくてはいけない概念が
あります。
C++でのnewやvirtual、ポリモーフィズムは、
結局ポインタやスッタク,ヒープがわかってなければ使えないでしょう。
そして、new,virtual,ポリモーフィズムが使えなければ
結局オブジェクト指向はできません。

C言語はコンピューターの仕組みが、そのまま反映されています。
一方でJavaやdelphi...perl,vbもありますが、(抽象化の度合いがかなり違いますね)
結局のところ抽象化された部分が何であるのか理解できないと
使え無いと思います。
そういう意味でもC言語は入門に最適です。
C言語がわかれば、あとは理屈の問題なのです。
がんばってください。

>Cと異なるC++の強い型チェックの意義を理解してないんじゃないの。
えーと,これはなんの事をいってるのでしょうか?
組み込み型のキャストの話でしょうか?
構造体、関数ポインタなんてのもCじゃ無きゃ使わないですね
malloc,freeも最近使ってないですね。そういうわけでsizeofも・・・
個人的にはコンパイラのエラーメッセージがVC++はバカすぎると思うので
Javaで勉強するのはいいですよね。
CもC++に比べたら,エラーを見つけやすいですね。
(gccの話です)