Тот, который используется в твоём учебнике программирования для объяснения свойств алгоритмов. И вероятность того, что это будет именно C, мало отлична от нуля.
С - это, фактически, не язык высокого уровня, а не привязанный к какой-то системе команд высокоуровневый ассемблер. Он никак не проверят, что и как ты делаешь. Потому допустить ошибку и не заметить, что ошибся, в C очень просто. Чтобы писать на C приличный код, надо очень хорошо понимать, что именно ты пишешь и почему пишешь именно так.
Rust - это попытка сделать высокоуровневую замену C - ценой переусложнения языка (время обучения уйдёт не на программирование, а особенности написания кода на Rust). А в C++ просто пихают всё, что модно на момент принятия нового стандарта - язык даже не большой, а гигантский и при этом сохранивший абсолютно все недостатки исходного C.