【发布时间】:2011-04-27 11:12:18
【问题描述】:
在 C# 中,代码arr[0]++; 和 ++arr[0]; 之间是否存在差异(全部在一个语句中,而不是更大语句的一部分)
我完全理解,在 C/C++/Objective-C 中,这不会做同样的事情,第一种情况会在 arr 的第 0 个索引处获取值并将该值增加 1,而第二种情况, 增加 arr 的指针值,对它的第 0 个位置不做任何事情(与arr[1]; arr++; 相同)。
多亏了……他提醒了我,这在C#和C/C++/Obj-C中是一样的。
但是,C# 中的这两个语句有区别吗?
【问题讨论】:
-
与
val++和++val的区别相同。 -
好的,我只是想确保没有像 C/C++/Obj-C 中的某种差异...我是 parinoid :)
-
和C/C++/etc完全一样。相同的区别。
-
但是在这些语言中
++运算符的优先级不是比索引运算符高吗? -
前缀
++在 C 和 C++ 中的优先级低于[]数组下标,因此它也会修改数组中的值,而不是arr本身。 (例如参见cppreference.com/wiki/operator_precedence)
标签: c# arrays post-increment pre-increment