基本C++问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 07:31:44
a=3
b=++a*++a
那么b到底等于20还是25?
我个人理解b=4*5应该为20,可是电脑却等于25,不知道究竟为什么。。。
如果只是b=++a,那么b就是4,对吧。
可是先做*号前面的第一次++a是4,那么*号后面的++a就是5,最后再做乘运算4*5不应该是20么?

25啥,分析,因为++的优先级比*高,所以可以把程序写为b=(++a)*(++a);
当两个括号执行完了再相乘,a此时已经是5了,所以b=a*a=25;
记住:同为a则它计算使用的是一个内存地址中的值,前后各自增一次,对两个乘数都有影响

程序是一句话一句话执行的,
b=++a*++a
+了两次 a=5
所以为25

++的优先高于*所以先执行了两次的++。5 *5 = 25