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这是为什么?麻烦详细说明,本人无师 ,系统内目前没分 ...抱歉!](/uploads/image/z/10150413-69-3.jpg?t=C%2B%2B%E8%AF%AD%E8%A8%80%E4%B8%ADa%3D3%2Cc%3D%2B%2Ba%2C%E9%82%A3a%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%8F%98%E6%88%904%3Fa%3D3%3Bb%3D5%3Bc%3D%2B%2Ba%2Ab%3Bd%3Da%2B%2B%2Ab%3B%E6%95%99%E7%A8%8B%E4%B8%AD%E7%BB%99%E5%87%BA%E7%9A%84%E7%BB%93%E6%9E%9C%E6%98%AF+a%3D4%2Cc%3D20%2Cd%3D20%E8%BF%99%E6%98%AF%E4%B8%BA%E4%BB%80%E4%B9%88%3F%E9%BA%BB%E7%83%A6%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%2C%E6%9C%AC%E4%BA%BA%E6%97%A0%E5%B8%88+%2C%E7%B3%BB%E7%BB%9F%E5%86%85%E7%9B%AE%E5%89%8D%E6%B2%A1%E5%88%86+...%E6%8A%B1%E6%AD%89%21)
xSRP}5wJ>Iui_ Z QDZJ@ZiHMVBOڙN½9Z=ԷlUUjv[3{jhWXΫ_.)vrTtTqdg];4Xfm=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;
那么教材始终是教材,出错是难免的了,恭喜你在学到知识的同时也发现了真知,