Рассмотрим вопрос SO, опубликованный для Java Как работает оператор +++?
Ну я это понимаю
- Нет такого оператора, как '+++', это просто инкремент после исправления, за которым следует инфиксное добавление
- Это преступление против читабельности
Что я хочу знать (просто из любопытства) ЕСЛИ
+++
это просто инкремент после исправления, за которым следует инфиксное добавление , а не +++
это просто инфиксное добавление, за которым следует префиксный инкремент или его неопределенное поведение < / сильный>.
Считайте, что я тестировал следующую программу
#include <iostream>
int main() {
int x = 1;
std::cout<< x+++1 << std::endl;
std::cout<< 1+++x << std::endl;
}
В VC ++, gcc и g ++, и все они соответствуют тому факту, что
'+++' its just a post-fix increment followed by an infix add
И нет
'+++' its just an infix add followed by a prefix increment
1 ответ
Да, правило максимального пережевывания говорит нам, что +++
анализируется как ++ +
(не постфиксный, за которым следует инфикс, а постфикс, за которым следует оператор +
), что также оказывает
1+++x <----> 1++ + x
Незаконно, потому что 1
не является lvalue.
lvalue
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
++ +
или+ ++
, чтобы указать, чего вы действительно хотите. Даже если компилятор знает угловые случаи, ваши товарищи-программисты могут не знать. Зачем их черт возьми?