i=i++是怎么回事?


同编译器有关。用VC++编译器 得 1i++ 是后++,表达式里用老值,出了表达式更新。这样看清楚: int i=0,j; j=i++; // 表达式里用老值,所以 j=0 printf("i=%d j=%d",i,j);打印出i=1 j=0-----------------i=i++; 表达式里用老值,出了表达式应当更新。得0,说明编译器有问题,或编译时“优化”处理有问题。
前缀++和后缀++的执行规则是,后缀++是先执行表达式再把变量增加1,而前缀++则是先把变量增加1后再求表达式。比如i=1; j=i++; 后缀++先求表达式,因此先计算j=i,结果为j=1,再把变量i的值增加1,结果i=2。而j=++i则是先把变量i的值加1,也计算表达式j=i,因此结果i和j都等于2。懂了吗。

文章标签:

本文链接:https://www.u1e.cn/baike/a/d5d9189d18dee77958d8266a [复制]

猜你喜欢

歇后语大全

还没有人回应过