打印
[经验分享]

薛定谔的指针

[复制链接]
482|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2025-4-8 16:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
分析一个有意思的代码现象

#include <stdio.h>

int main(void) {
    int a = 1;
    int b = 2;
    (&a)[-1] = 9999;
    printf("%d\n", b);
//    printf("%x", &b);

    return 0;
}
输出结果:



打开注释:

#include <stdio.h>

int main(void) {
    int a = 1;
    int b = 2;
    (&a)[-1] = 9999;
    printf("%d\n", b);
    printf("%x", &b);

    return 0;
}
输出结果:



当你观察b时输出想要的结果,不观察时没有改变结果,挺有意思的

原因是与编译器的机制有关



————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_41729472/article/details/146924173

使用特权

评论回复
沙发
王栋春| | 2025-4-8 19:14 | 只看该作者
只听说过薛定谔的猫,的确长见识了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2218

主题

16612

帖子

18

粉丝