运行结果不一致
来源:3-5 常量【常量修改秘笈】

hjh2015
2021-01-14
老师,我本地这代码运行下来结果不一致,代码如下:
#include <stdio.h>
void main() {
const int rgb = 0xFF0000;
printf("old val: %x\n", &rgb);
int *a2 = &rgb;
*a2 = 3;
printf("new val: %d", rgb);
}
有时候运行结果是输出两条log,有时候运行结果是下图。通常运行第一次或者第二次的时候会报错,多运行几次又正常了。
写回答
1回答
-
bennyhuo
2021-01-14
这个是编译器的警告。如果你不修改代码直接编译会用上一次的结果,因此就不会再有警告了(其实不是真的没有警告,只是因为跟上一次结果一样所以没有触发编译流程)。
00
相似问题