i++ 和 ++i的基本功能是相同的,都是对变量i进行自增1运算,从功能上讲相当于i =i+1 ;
++运算符分为前缀++和后缀++,如i++中的++就是后缀运算符,++i中的就是前缀运算符,两个的区别在于:
前缀++,先使用变量,再进行变量自增1
后缀++,先进行变量自增1,再使用变量
现在分析你的代码:独立的i++与++i的效果是一样的,最后都使i的值增1。
在表达式中i++取i的值参与运算,之后才执行++使i增1,而++i取i+1的值参与运算,就是说行执行++使i增1,再取i的新值参与运算。
把题面的代码printf("%d\n",z);改成printf("%d %d\n",z,i);,看看是不是i值比z大1?这就完全清楚了!