我有这个代码:
long long int a = 3, *b = &a;
int c = !(a+=1, a>>=2, a--, !a);
printf ("%11d %d\n", a, c);
当我运行它时,它给了我 0 0,但我不明白为什么。不应该是 0 1 吗?
最佳答案
扩展代码并删除任何多余的内容:
long long int a = 3; // a = 3
a+=1; // a = 4
a>>=2; // a = 1
a--; // a = 0
int c = !!a; // c = 0
printf ("%lld %d\n", a, c); // prints 0 0
^^
// note that this should be `ll`, not `11`
关于c - C 运算符的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48540843/