Я считаю, следует учить предварительно чистый С. C++ фактически - надстройка над С, в которой очень многие его средства продублированы и расширены на основе ООП, и изучение параллельно какого-то средства и его аналога, записываемого совсем по другому, при том что их смешивание в одной программе может приводить к неприятностям, очень запутывает. Программы надо писать или в стиле чистого C, или в стиле C++.