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)
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/17 13:14:57
![C语言菜鸟问题如下#include](/uploads/image/z/3969328-40-8.jpg?t=C%E8%AF%AD%E8%A8%80%E8%8F%9C%E9%B8%9F%E9%97%AE%E9%A2%98%E5%A6%82%E4%B8%8B%23include+%22stdio.h%22void+main%28%29%7B+int+d%3D5%2Cp%3D3%3B%5Cx05d%2B%3D%2B%2Bp%2B%28%2B%2Bp%29%3B%5Cx05printf%28%22%25d%22%2Cd%29%3B%7D%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BE%93%E5%87%BA15%3F%E8%80%8C%E4%B8%8D%E6%98%AF4%2B5%2B5%3D14%E5%A6%82%E6%9E%9C%E6%94%B9%E4%B8%BAd%2B%3Dp%2B%2B%2Bp%2B%2B%EF%BC%9B%E5%88%99%E7%AD%89%E4%BA%8E11%EF%BC%885%2B3%2B3%EF%BC%89)
xՒNA_eSCf6M+z ޠq,@CBHV$mWXIM(XZhtnۗ+xf"1Ko6gΜY+?e3Ϗz{7kd[³s%b/oMCy5o5,(FNW\fC@9,OJ$%(yLL Hͮ㠋{6٠JJ]Mm֞A:s|'Qww4muAQd./B']9"uO80_߿(UggBHa=Ѫ~t~A}'鑊-w@jqɋ7Mr?Ta!IoV]z6lAuN!;u a&ܼgX
J/X|UId+"[T#p
djm XF~^G=5 Ć%IB{`rwe}ԫrjmM+ܺTvY6V{wEGCchj5_1
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)
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)
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