2010-04-11 82 views
2

代碼中最後兩條語句的問題是什麼?io流錯誤

#include <iostream> 
using namespace std; 
int main() 
{ 
cout << "2 + 4 = " << 2 + 4 << endl; 
cout << "2 * 4 = " << 2 * 4 << endl; 
cout << "2 | 4 = " << 2 | 4 << endl; 
cout << "2 & 4 = " << 2 & 4 << endl; 

我應該怎麼做才能解決這個問題?

回答

9

什麼是在代碼的最後兩個語句的問題?

運算符優先級。 |&的優先級低於<<,因此cout << "2 & 4 = " << 2 & 4 << endl;被解析爲(cout << "2 & 4 = " << 2) & (4 << endl;)

我應該怎麼做才能解決這個問題?

將麪包放在2 | 42 & 4左右。

3

將表達式放在括號中。 <<運算符優先於按位運算符。

#include <iostream> 
using namespace std; 
int main() 
{ 
    cout << "2 + 4 = " << 2 + 4 << endl; 
    cout << "2 * 4 = " << 2 * 4 << endl; 
    cout << "2 | 4 = " << (2 | 4) << endl; 
    cout << "2 & 4 = " << (2 & 4) << endl; 
    return 0; 
}