#include <stdio.h>
int main(void) {
int a = 0, b = 0, c = 0;
++a || ++b && ++c;
printf("%d %d %d", a, b, c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是1,0,0与gcc 8.1.0.该&&的优先级应高于||.
为什么是b和c还在0?
#include <iostream>
using namespace std;
int main() {
const int a = 10;
auto *b = const_cast<int *>(&a);
*b = 20;
cout << a << " " << *b;
cout << endl << &a << " " << b;
}
Run Code Online (Sandbox Code Playgroud)
输出如下:
10 20
0x7ffeeb1d396c 0x7ffeeb1d396c
Run Code Online (Sandbox Code Playgroud)
该a和*b是在同一个地址,为什么他们有不同的价值?