void main()
{
int i=2,j=4;
i=+++i+j; //is not an error
i=---i+j; // is a L-value required error..
}
может кто-нибудь, пожалуйста, объясните подробно концепцию позади нескольких приращений и уменьшений ..
void main()
{
int i=2,j=4;
i=+++i+j; //is not an error
i=---i+j; // is a L-value required error..
}
может кто-нибудь, пожалуйста, объясните подробно концепцию позади нескольких приращений и уменьшений ..
Я думаю, что синтаксический анализатор не в состоянии разобрать его в формате он хочет это будет. Попробуйте использовать скобки, как показано ниже. Это сработает.
i = - (- i) + j;
Вопрос в том, что отличается от оператора '-' и оператора' + ', который работает первым. – woolstar
точно сэр .. Не могли бы вы объяснить мне, почему первый работает. –
В обоих случаях программа демонстрирует неопределенное поведение, а выход может быть любым. 1. main должен возвращать int не пусто. В C return void - это расширение, которое не все компиляторы поддерживают, делая код не переносимым, в C++ это просто неопределенное поведение. 2. В обоих случаях разрыв части стандарта, который указывает переменную, может быть недоступен более одного раза между точками последовательности, где по крайней мере один из этих обращений должен изменить значение переменных. В стандарте указано, что в таком случае поведение будет неопределенным. Я предлагаю вам посмотреть точки последовательности и неопределенное поведение в Интернете. – Saurabh
... Пожалуйста, объясните концепцию написания нечитаемого кода –
Что вы намерены делать с этими несколькими приращениями и сокращениями? – ccozad
жаль писать нечитаемый код ... но не могли бы вы объяснить мне в контексте этого вопроса .. –