分析一个有意思的代码现象
#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
|