c语言里,i++与++i的区别,最好举例说明

结果怎们一样了

i++ 和 ++i的基本功能是相同的,都是对变量i进行自增1运算,从功能上讲相当于i =i+1 ;

++运算符分为前缀++和后缀++,如i++中的++就是后缀运算符,++i中的就是前缀运算符,两个的区别在于:

前缀++,先使用变量,再进行变量自增1

后缀++,先进行变量自增1,再使用变量

现在分析你的代码:
i=1;
k=++i; //先加,后用,i=i+1=2 k=i=2
z=i++; //先用,后加,z=i=2, i=i+1=3
输出 
2
2

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-17
前置的++,是变量先自增1,然后再作其他操作,
后置的++,是先取变量当前的值操作,然后再自增1
你的例子中,i的初始值是1,执行k = ++i;时,先执行了 i = i + 1,也就是i的值变为2,再把i的值赋给k,所以k的值是2,i的值也是2
执行z = i ++;时,先取i的值赋给z,此时i的值是2,所以z也是2,然后再执行i= i + 1,这条语句执行完成后,i的值变为3本回答被提问者采纳
第2个回答  2015-10-11

    独立的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?这就完全清楚了!

相似回答