Возьмем x за переменную. 
x++ =x+1
То есть у нас же есть всего два операнда, разве нет? Единица не считается операндом? В документации операции являются унарными, а почему, не ясно. 
P. S. Вопрос конечно бесполезный, ведь это лишь теория, но мне чертвоски интересно, почему оперции унарные, а не бинарные.
	
	
	C#
	
		
		
								
				
																				
							
								
				
								
				
				
							
								
				
																				
							
								
				
																				
							
								
				
								
				
			
	
		
			Почему операции инкремента и декремента - унарные?
Унарная операция - такая, которая применяется к одному операнду. Что конкретно тебя смущает?
				
									
								
									Николай Сорокин								
								если исходить из моего представления, то то что х++ = х+1. То есть почему 1 не может быть операндом?							
											Инкремент: n = n + 1
Декремент: n = n - 1
Инкремент: n += 1
Декремент: n -= 1
Независимо от того как выглядит запись, конечный результат тот же. В унарном варианте имеется возможность реализации префиксной и постфиксной формы, которые отличаются приоритетом.
				
							Декремент: n = n - 1
Инкремент: n += 1
Декремент: n -= 1
Независимо от того как выглядит запись, конечный результат тот же. В унарном варианте имеется возможность реализации префиксной и постфиксной формы, которые отличаются приоритетом.
есть всего два операнда, разве нет?В контексте операций инкремента, его фиксированное значение операндом не является.
>x++ =x+1
А с чего ты решил, что данное утверждение справедливо и там вообще всегда появляется единица?
В плюсах operator++ перекрывается таким образом, каким это требуется программисту, например, инкремент указателя в числовом значении увеличит его значение не на единицу, а на размер того типа, на который этот указатель указывает, например на 4 для типа int
Операции инкремента и декремента не подразумевают, что переменная является строго числовой и что к ней нужно прибавить единицу, они подразумевают что над переменной нужно выполнить унарную операцию, внезапно, инкремента или декремента соответственно; а то как эти операции реализованы - это внутреннее дело самой реализации.
				
									А с чего ты решил, что данное утверждение справедливо и там вообще всегда появляется единица?
В плюсах operator++ перекрывается таким образом, каким это требуется программисту, например, инкремент указателя в числовом значении увеличит его значение не на единицу, а на размер того типа, на который этот указатель указывает, например на 4 для типа int
Операции инкремента и декремента не подразумевают, что переменная является строго числовой и что к ней нужно прибавить единицу, они подразумевают что над переменной нужно выполнить унарную операцию, внезапно, инкремента или декремента соответственно; а то как эти операции реализованы - это внутреннее дело самой реализации.
								
									Вадим ...								
								
Все-таки, ++ всегда увеличивает на 1. То, что увеличение указателя на 1, в свою очередь, на самом деле приводит к увеличению на размер типа, это следующий разговор. Так что для указателей тоже справедливо ++ptr == ptr+1
											А с чего ты решил, что данное утверждение справедливо и там вообще всегда появляется единица?
В плюсах operator++ перекрывается таким образом, каким это требуется программисту, например, инкремент указателя в числовом значении увеличит его значение не на единицу, а на размер того типа, на который этот указатель указывает, например на 4 для типа int
Все-таки, ++ всегда увеличивает на 1. То, что увеличение указателя на 1, в свою очередь, на самом деле приводит к увеличению на размер типа, это следующий разговор. Так что для указателей тоже справедливо ++ptr == ptr+1
Возможно смысл в том, что для бинарных операций нужно больше обращений к регистрам, а единица нигде не хранится, на которую производится инкремент или декремент.
				
									
								
									Николай Сорокин								
								Кстати, да, возможно поэтому)							
											Операция инкремента - унарная. Операция "прибавить" (что-либо к чему либо) - бинарная. В частных случаях, как например, в твоем, они могут быть по смыслу одинаковыми. Но все равно, по определению, "++" - унарная операция, а "+" - бинарная. Просто по количеству операндов.
Классический унарный минус точно так можно переписать в виде бинарной операции - как умножение на (-1). Это ничего не меняет, унарный минус продолжает оставаться унарной операцией, пусть ее и можно переписать в виде бинарной.
				
							Классический унарный минус точно так можно переписать в виде бинарной операции - как умножение на (-1). Это ничего не меняет, унарный минус продолжает оставаться унарной операцией, пусть ее и можно переписать в виде бинарной.
x++ операнд всего один. Унарный - одиночный
				
							Похожие вопросы
- Почему в C# логические операторы имеют именно такой вид (||, |, &&, &, !)
- C#.Почему double не конвертируется во float?
- Решил попробовать изучать программирование (C# конкретно) и вот не могу понять почему код с упражнения не работает
- Почему в C# нумерация (индексы) элементов массива начинаются с нуля, а не с единицы?
- Приведите аргументы почему с# (си шарп) плохой? без коментариев (он норм)
- Почему "y" не присвоено значение?
- Почему C# относится к компилируемым языкам, компиляция это перевод всего кода в машинный, а C# переводится в байт код
- Почему объекты в C# такие монструозные - каким принципам следовала Майкрософт при их дизайне, и будет ли лучше?
- Почему в .NET нет встроенных типов данных с фиксированной точность?
- C#. Как вернуть индекс определенного элемента массива?Почему ошибка?
 
			 
						 
						 
						 
						