C++语言中a=3,c=++a,那a为什么会变成4?a=3;b=5;c=++a*b;d=a++*b;教程中给出的结果是 a=4,c=20,d=20这是为什么?麻烦详细说明,本人无师 ,系统内目前没分 ...抱歉!

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/17 18:03:30
C++语言中a=3,c=++a,那a为什么会变成4?a=3;b=5;c=++a*b;d=a++*b;教程中给出的结果是 a=4,c=20,d=20这是为什么?麻烦详细说明,本人无师 ,系统内目前没分 ...抱歉!
xSRP}5wJ>Iui_Z QDZJ@ZiHMVBOڙN½9Z=ԷlUUjv[3{jhWXΫ_.)vrTtTqdg];4X߼fm=R+?}k(]ݷ D;hm$v',/i& dRl^ƫlC&?9^bOQ_rd?gA282`Ge*۷LQ{&.sܩ/qzͨ<TIPAOf2r8{`%5fbo 5j|V{XwtnonÊ8pwJ+jX=kk.\:D֑Ji㸋N3>Ew}LFw-2&TVІE ^x 9~|FV`Aė5hiq2q`݆_UL!v˄%?Ly{M[`\Xyhj!O8qCLAN5KˠsGZGg4.4='[dg}jlh-˦>is

C++语言中a=3,c=++a,那a为什么会变成4?a=3;b=5;c=++a*b;d=a++*b;教程中给出的结果是 a=4,c=20,d=20这是为什么?麻烦详细说明,本人无师 ,系统内目前没分 ...抱歉!
C++语言中a=3,c=++a,那a为什么会变成4?
a=3;b=5;c=++a*b;d=a++*b;
教程中给出的结果是 a=4,c=20,d=20
这是为什么?麻烦详细说明,本人无师 ,
系统内目前没分 ...抱歉!

C++语言中a=3,c=++a,那a为什么会变成4?a=3;b=5;c=++a*b;d=a++*b;教程中给出的结果是 a=4,c=20,d=20这是为什么?麻烦详细说明,本人无师 ,系统内目前没分 ...抱歉!
在这个问题中,你首先要明白,++的优先级高于*与=的优先级,其次要知道前缀自增与后缀自增的区别(前自增,即++a是先增后操作,后自增,即a++反之).明白了上述两个条件就可以分析你的问题了:
c=++a*b;//a先自增,此时为4,然后与b相乘,得到的值20赋值给c.c即为20
d=a++*b;//a(此时值为4)先与b相乘,得值20赋值给d,d的值为20.然后a自增,此时a变成5
经过以上分析,我在自己的编译器上测试后得到结果:a=5,b=5,c=20,d=20;
那么教材始终是教材,出错是难免的了,恭喜你在学到知识的同时也发现了真知,