作业帮 > 综合 > 作业

C语言菜鸟问题如下#include "stdio.h"void main(){ int d=5,p=3;\x05d+=+

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 02:05:24
C语言菜鸟问题如下
#include "stdio.h"
void main()
{ int d=5,p=3;
\x05d+=++p+(++p);
\x05printf("%d",d);
}
为什么输出15?而不是4+5+5=14
如果改为d+=p+++p++;则等于11(5+3+3)
++ 这个操作符你没有理解,++如果放在变量的前面就是前加,而前加操作,是在运算式运行之前执行的,也就是说d+=++p+(++p)
两个++p 都在这个运算表达式之前就执行了,那么在执行这个运算式之前
p就已经被++过两次了,所以在运行运算式之前P的值就是5了.所以结果是15
p+++p++ 这个是后加,即表达式结束之后再做++操作,结果自然是11