C ist eine mittlerweile ziemlich „alte“ Programmiersprache, welche aber in vielen Faellen gute Dienste leistet. C++ kann man sich vorstellen als eine Erweiterung von C, da gibts dann auch modernere Konzepte wie Objektorientierung. In der Treiberprogrammierung, hardwarenahen Programmen oder Dingen, die mit geringen Ressourcen auskommen muessen, wird man also C nehmen (oder eine andere Sprache). Spieleprogrammierer und alle anderen, die nicht ganz so sparsam sein muessen, entscheiden sich vllt fuer C++ (oder eine andere Sprache). Syntaktisch und namensgebend sind C und C++ sehr nahe, aber funktional liegt C++ dichter bei Java als bei C.
Grundsaetzlich wird die Wahl einer geeigneten Programmiersprache vom Projekt bestimmt. Es ist unsinnig, wenn auch nicht unmoeglich, einen Webauftritt in C++ umzusetzen, genauso wenig wuerde ich ein Autorennspiel in PHP schreiben… Also, je mehr ich aus den vorhandenen Ressourcen rausholen muss, desto spartanischer (und aufwaendiger in der Umsetzung) wird die verwendete Programmiersprache. Treiber, einige gute Betriebssysteme und die Steuerung der Raumfaehren sind deswegen gerne in Assembler geschrieben, notfalls mit bissel C. Wenn ich mehr Leistung habe, kann ich mir damit Komfort erkaufen, C++, C#, Java…