0
我在Visual Studio 2008中運行簡單的程序,它給出瞭如下的2個結果。 請幫助我瞭解爲什麼在第一種情況下它給結果= 1024 案例1:位操作符對輸出的優先級的影響
#include<windows.h>
#include<iostream>
using namespace std;
int main()
{
int i =4;
k = i<<3 + i<<1;
cout<<"Result "<<k;
return 0;
}
輸出爲1024
case2:
int j=0;
j=i<<3;
int n = i<<1;
k = j+ n;
cout<<"Result "<<k;
輸出爲40
給我們足夠的代碼來重現您的結果。另外,你期望什麼,爲什麼你期望它? –
'k = i << 3 + i << 1;' – Real73
@ ShahrairNazimReal是什麼意思?* ShahrairNazimReal是*認爲*他們真的很聰明,試圖乘以10。*真的很聰明的人打開優化。 – user4581301