如题所述
你好
这是个变量自加的问题,i++和++i是有区别的。
当一段代码里出现
...i++;...
或...++i;...
时,他们其实没多大区别,只是++i的执行效率要高些,但对结果i的值都是一样的。
但如果代码里出现的是
...m=i++;...
或...m=++i;...
时,他们结果就不一样了,因为i++是先赋值再自加(可以理解为2句:m=i;++i;),而++i是先自加再赋值(可以理解为2句:++i;m=i)。也就是说如果i=5,那么执行之后,前者的m=5;而后者m=6.
这些你可以试一下再慢慢体会,希望对你有帮助。。。
这是个变量自加的问题,i++和++i是有区别的。
当一段代码里出现
...i++;...
或...++i;...
时,他们其实没多大区别,只是++i的执行效率要高些,但对结果i的值都是一样的。
但如果代码里出现的是
...m=i++;...
或...m=++i;...
时,他们结果就不一样了,因为i++是先赋值再自加(可以理解为2句:m=i;++i;),而++i是先自加再赋值(可以理解为2句:++i;m=i)。也就是说如果i=5,那么执行之后,前者的m=5;而后者m=6.
这些你可以试一下再慢慢体会,希望对你有帮助。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-01-30
i++是先取i的值再自加1,++i是先自加1再取i的值
i=5;
printf("%d%d",i++,++i)
5,7
先输出i,i++之后i=6,然后++i,i先自加i=7,输出i
i=5;
printf("%d%d",i++,++i)
5,7
先输出i,i++之后i=6,然后++i,i先自加i=7,输出i
第2个回答 2010-01-30
i=5设a:j=i++与b:j=++i得a:j=6,i=5;b:j=i=6
第3个回答 2010-01-30
,假设j=i++,j=5,i=6;j=++i,i=j=6