一小段运行奇怪的程序

假正经的班长 假正经的班长 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#include <stdio.h>

int *p = NULL;

void fun()
{
int i = 10;
p = &i;
}

void main()
{
fun();

printf("第1次:*p = %d\n", *p);
printf("第2次:*p = %d\n", *p);
printf("第3次:*p = %d\n", *p);

}


以上代码片段先猜猜执行结果是多少。
全是无效值?还是全是10?执行一下便知道,但为何如此?



另外,执行完 fun之后,Sleep 1秒,执行结果也不同。
另外,Debug下和Release下结果也不同
另外,Linux下gcc编译结果同VS下Debug结果
……

大家分析一下,什么原因?
...全文

相关推荐

评论 30
收藏 已收藏
分享
返回顶部
假正经的班长
C++ 语言 65,214 成员 250,514 内容