读书人

int b = (++ a,a gt;gt; 1)这样的语句应该

发布时间: 2012-02-22 19:36:56 作者: rapoo

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吧……

读书人网 >C++

热点推荐