运行结果不一致

来源: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

这个是编译器的警告。如果你不修改代码直接编译会用上一次的结果,因此就不会再有警告了(其实不是真的没有警告,只是因为跟上一次结果一样所以没有触发编译流程)。

0
0

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程