关于c的一道题

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:16:33
int a=1,b=2,l;
l=++a+++a*b;
为什么在vc6上说这个语句不对?
因为老师讲int 和 float会得出不同的答案,所以加了括号起不到测试的目的

int a=1,b=2,l;
l=++a+ ++a*b;
int是9
float是8.0
漏了一个空格吧

l=++a+++a*b;

l=(++a)+(++a*b);
还是
l=++(a+(++a*b));
还是
l=++((a++)+a*b));
出现二义性

因为++l++前后的两个++优先级相同,无法判断执行顺序。

以上不对,问题在于a*b后为常数,不能再进行++运算。

为什么要给自己添麻烦吧,另一两个括号有什么难的。