Каковы исторические причины, по которым языки C имеют преинкременты и постинкременты?

(Примечание: я не спрашиваю об определениях перед инкрементом или после инкремента или о том, как они используются в C / C ++. Поэтому я не думаю, что это дублирующий вопрос.)

Разработчики C (Деннис Ритчи и др.) Создали операторы увеличения и уменьшения по очень веским причинам. Что я не понимаю, так это почему они решили провести различие между предыдущими пост-приращениями / убываниями?

Я чувствую, что эти операторы были гораздо полезнее, когда C разрабатывался, чем сегодня. Большинство программистов на C / C ++ используют один или другой, а программисты из других языков считают это различие странным и запутанным (примечание: это основано исключительно на неподтвержденных данных).

Почему они решили сделать это, и что изменилось в вычислениях, что это различие не столь полезно сегодня?

Для записи, разница между ними можно увидеть в коде C ++:

int x = 3;

cout << "x = 3; x++ == " << x++ << endl;
cout << "++x == " << ++x << endl;
cout << "x-- == " << x-- << endl;
cout << "--x == " << --x << endl;

даст в качестве выхода

x++ == 3
++x == 5
x-- == 5
--x == 3

Ответы на вопрос(6)

Ваш ответ на вопрос