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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/05/26 07:00:04
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
这是为什么?麻烦详细说明,本人无师 ,
系统内目前没分 ...抱歉!

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;
那么教材始终是教材,出错是难免的了,恭喜你在学到知识的同时也发现了真知,