我想知道为什么 num 两次的值都是15?不应该第一次为7吗?
C代码:
#include
2
3 int main()
4 {
5 int num = 5;//num = num |()
6 char val = 5;
7 printf("num |=(1<<1) %d %d\n",num |=(1<<1),num |= (1<<3));
8 printf("val |=(1<<1) %d\n",val |= (1<<1));
9 printf("val |=(1<<3) %d\n",val |= (1<<3));
10 return 0;
11 }
运行结果:
num |=(1<<1) 15 15
val |=(1<<1) 7
val |=(1<<3) 15
printf("num |=(1<<1) %d %d\n",num |=(1<<1),num |= (1<<3));
你把这一句分成两个独立的句子来执行
或者你用两个变量来计算
不要在一个语句中,用一个变量计算多次