回 帖 发 新 帖 刷新版面

主题:怎么计算

d+=p++;
printf("%d\n",p);

回复列表 (共7个回复)

沙发

d+=p++
这句话就是d=d+(p++);
然后又要输出p而不是d,那上述语句中真正起作用的只有p++
也就是p比原始值大了1……

板凳

d=5,p=3
d+=p++;
printf("%d\n",d);那结果是什么

3 楼

[quote]d=5,p=3
d+=p++;
printf("%d\n",d);那结果是什么[/quote]

d+=p++;-->d=d+(p++); d=d+3;(此时p=4) d=5+3=8

4 楼

++优先不是P不先加1?

5 楼

这个取决于左算还是右算,不提倡这样做的,程序要简单明了。

6 楼

[quote]d=5,p=3
d+=p++;
printf("%d\n",d);那结果是什么[/quote]
我给你详细讲一下吧
先说p++:就是先使用p,用完后p的值自动加1
x=++p      是先将p的值加1 后赋值
再说你的代码:
d=5,p=3;
d+=p++就是d=d+(p++)
具体先将p的值和d的值相加,后p自动加1,所以d=d+3,而p=4

7 楼

有意思!

我来回复

您尚未登录,请登录后再回复。点此登录或注册