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