C это не подмножество C++. это разные языки, в которых одинаковые задачи решаются разными средствами. оба имеют свои применения. можно и C на хорошем уровне преподавать и C++ так, что лучше вообще не надо.
> разве C++ не лучше него, Зависит от целей и задач. Если тебе надо какой-нибудь микроконтроллер запрограммировать - не лучше. >и разве нельзя начать учить сразу C++ не зная Си? A вот это как раз не получится. Изучая C++ ты неминуемо вынужден будешь изучить C, не знать его у тебя не выйдет.
Си проще. Изучать С++ не зная С - бессмысленно, иначе просто захлебнешься в С++ и будешь писать, как последний индус. А на практике С применяют там, где необходим почти низкоуровневый доступ к возможностям компьютера с минимальными накладными расходами. И только для доступа к закрытым от языка С возможностям (манипуляция со стеком, доступ к регистрам процессора и т. п.) применяют ассемблерные вставки.
Оба языка прекрасны, он проверены временем и давно доказали свою состоятельность. Учите что дают. Тем более, что СИ – это подмножество С++. В дальнейшем очень пригодится.