#include<iostream>
using namespace std;
int *p = NULL;
void
fun(void){
int i = 10;
p = &i;
}
int
main(void){
fun();
cout<<*p<<endl; //#1
cout<<*p<<endl; //#2
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为#1和#2输出相同,但为什么#1输出10和#2输出一个随机数?
这只是未定义的行为.在该变量超出范围之后,您正在使用指向局部变量的指针.什么事情都可能发生.