Не обязательно, но очень полезно. C++ фактически является очень далеко идущим расширением С, и большинство его средств относительно низкого уровня в C++ продублировано средствами более высокого уровня, они существуют в C++ параллельно средствам от С. Так что лучше сначала изучить чистый С, всё равно это начальная часть C++, иначе в голове и программах будет каша.
Да, чтобы понимать, как делать НЕ надо.
Потому что любой сишный подход по возможности надо заменять альтернативой из C++.
Но по C++ маловато информации, так что "как не надо" тоже полезно в качестве ориентира.
Обязательной необходимости нет, можно спокойно освоить С++ с нуля, даже как первый язык. Но, как выше пишут, если есть возможность, лучше создать базис в виде знания чистого С.