int b = (++ a,a >> 1)这样的语句应该怎样理解?
完整内容如下,请问最终计算结果及原因
int a = 4;
int b = (++ a,a >> 1);
b * a;
------解决方案--------------------(++a, a>>1)
这里是先a+1,得a=5
然后a右移1位,得2,但是a仍然=5
这括号是逗号运算符,所以取2赋给b,
然后a*b=5*2=10
------解决方案--------------------为什么a值不变,能不能详细说一下?
比方说……
您写
int i=0;
i-1;
执行完i-1之后,i还是0……
所以
a>>1之后,a还是原来的值……
想它的值变?
那就用a=a>>1吧……