代码在c中工作但在c ++中不工作

Dev*_*yal 4 c c++

下面的代码在C中正常工作,但是当我尝试用c ++编写它时,程序不起作用.请解释.

C代码:

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int a = 33,b = 7;
    printf("%d\n",a&b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

C++代码:

#include<iostream>

using namespace std;

int main()
{
    int a = 33,b = 7;
    cout << 33&7 << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Mys*_*ial 32

观察您的运营商优先级:

cout << (33 & 7) << endl;
Run Code Online (Sandbox Code Playgroud)

&优先级低于<<.所以你需要使用().


有关C和C++中运算符优先级的完整列表:

http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence

  • 这就是为什么我总是把parantheses - 即使他们不是真的有必要.这样,代码的读者不需要知道运算符优先级. (6认同)
  • 所以它将`end`位向左移动`7`.:))) (2认同)