24小时热门版块排行榜    

CyRhmU.jpeg
查看: 244  |  回复: 2

ke0212

铁杆木虫 (著名写手)

[交流] 新手问题求教已有2人参与

# include <stdio.h>
   int main(void)
{
   int i, j, k, m;
   i = j = 3;
   k = i++;  //后自增整体表达式的值是i加1之前的值;
   m = ++j;  //前自增整体表达式的值是j加1之后的值;

   printf("i = %d, j = %d, k = %d, m = %d\n",i, j, k, m);

   return 0;
}
运行结果:/* i = 4, j = 4, k = 3, m = 4 */

我以为i和j的值应该是3和3,为什么变成4和4了, i++和++j不是分别赋给k和m了吗,为什么它自身的值也变成了4,初学者,还往解答,谢谢
回复此楼
志存高远
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xianyk

铁虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
++的含义就是自加,也就是自己给自己加1,所以i++运算后i的值为4。
++位置的不同,运算过程有差异。
++放在变量的左边,变量先自加,然后在使用变量值, m = ++j,j先自加,值变为4,然后将值赋给m,m值为4;++放在右边,先使用变量的值,然后变量再自加运算,k = i++,i先将值3赋给k,然后自加,语句执行完后k为3,i为4。
黑白
2楼2015-07-14 19:59:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

en~傻傻

银虫 (著名写手)

楼上很详细了

[ 发自手机版 http://muchong.com/3g ]
不坏的坏人不好的好人
3楼2015-07-15 13:45:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 TICOO 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见