В C++ (и на других языках программирования) (x++)
оценивает x как токен, а затем увеличивает его на 1, а (++x)
сначала увеличивает x, затем оценивает новое значение x как токена.Почему существуют x ++ и ++ x, а x + = 2, но не x = + 2?
Аналогично, существует (x += 2)
(оценивает x как токен, затем увеличивает его на 2). Однако (x =+ 2)
не сводится к увеличению x на 2, а затем оценивает новое значение x как токена, но оценивается как x = +2
.
Чтобы отличить x =+ 2
и x = +2
, необходим правильный интервал, но я не понимаю, почему это было бы проблемой.
Почему (x =+ 2)
не предназначен для выполнения функции двух предварительных приращений?
Редактировать: Цель этого - не выглядеть красиво, а облегчать некоторые случаи, которые могут возникать в циклах.
, поскольку необходимо надлежащее расстояние, например. 'x = + 2' - это что. 'x = x + 2'? или 'x = положительный 2'? и как только вы должны ввести правильный интервал, наличие «x = + 2» и «x + = 2» не позволяет вам вообще не тратить время/пространство. –
Цель этого не выглядит красивой, но облегчает некоторые случаи циклов. –
и помните, что зум-фраза C - это «вся сила ассемблера со всей удобочитаемостью ассемблера». Большинство процессоров имеют инструкцию 'inc', чтобы сделать простой« x = x + 1 », тогда как у немногих/нет будет' inc2'. поэтому в то время как x ++ может непосредственно сопоставляться с этой инструкцией 'inc', сопоставление для варианта +2 отсутствует, поэтому вы можете просто полностью записать прирост +2. –