2015-02-06 6 views
-3

В чем разница между этими унарными операторами в C#? , Можете ли вы предоставить мне пример?Разница унарных операторов (+ =, = +, ++ x, x ++)

Укажите, пожалуйста, имя каждого из них. :)

+ = против = +

++ х против х ++

+1

На каком языке? –

+2

@remyabel: Я уверен, что эти операторы будут вести себя одинаково независимо от языка. – nxasdf

ответ

4

Это без сомнения, был дан ответ раньше, но все равно ...

Они отличаются тем, как они изменяют значение и как они возвращают результат.

Первые два += и =+ ведут себя так, что первый приращает переменную, а другой устанавливает переменную. Они не связаны. Обратите внимание на следующий код:

// += 
x = 1; 
printf(x += 1); // outputs 2, the same as x = x+1 
printf(x);  // outputs 2 

// =+ 
x = 1; 
printf(x =+ 1); // outputs 1, the same as x = 1; 
printf(x);  // outputs 1 

Следующих два, ++x и x++, различаются в порядке их функция. ++x увеличит вашу переменную на 1 и вернет результат. x++ будет возвращать результат и приращение на 1.

// ++x 
x = 1; 
printf(++x); // outputs 2, the same as x = x+1 
printf(x); // outputs 2 

// x++ 
x = 1; 
printf(x++); // outputs 1 
printf(x); // outputs 2 

Они в основном полезны для for петель и while петель.

С точки зрения скорости, ++x считается намного быстрее, чем x++ с момента x++ необходимо создать внутреннюю временную переменную для хранения значения, приращение главной переменной, но возвращает временную переменную, в основном используются несколько операций. Я узнал об этом в последнее время, я не знаю, применяется ли оно еще до сих пор.

0

Let's визуализировать первые, + = и = +.

Потому что "+" это действие, а "=" это назначение, так

+ = является добавление ДО присвоения

= + является другой способ: добавить ПОСЛЕ назначения

Аналогично,

++ х "то приращение возврата"

x ++ - «возврат затем увеличение»

 Смежные вопросы

  • Нет связанных вопросов^_^