前置--和后置--称为自减运算符,下面以自增运算符的区别来加以介绍,自减类似
如果单独写
自增运算符为一个语句,二者没有区别
++i
和
i++
都是让i+1赋值给i
但是如果把自增运算符写入到另外表达式中二者就有很大区别了
例如
i=5
j=i++
执行后i为6,j为5
i=5
j=++i
执行后i为6,j为6
对于增1运算,最近我也很困扰,经过很长时间论证,VC6.0及其以下版本,对于增1的编译器存在着规则矛盾的问题。。。。举个很简单的例子,在VC6.0版本下
p=(++i)+i(++i)+i++与p=i+++(++i)+(++i)得出的是不同的结果。上述答案为3,12,4,4,可以再.net环境下
WIN32控制台程序中得到验证。在.net环境下无论怎么变换i++与++i的位置其结果都一样。