您的位置:首页 > 编程语言 > C语言/C++

运算符优先级问题

2015-03-16 22:48 260 查看
设计一个函数计算2n+1:

int func(int n)
{
return n << 1 + 1;
}

这个函数得到的结果是4*n。
使用左移一位代替乘以2的运算,是很好的方法,但在C/C++中“+”运算符优先级高于“<<”,因此会先进行加法运算再左移两位,得到结果4*n。

正确写法是:

int func(int n)
{
return (n << 1) + 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息