为什么未分配的int有值?

use*_*974 1 c c++ pointers integer

如果我运行以下代码,它会显示一个长号.

int i;    
int *p;    
p= &i;     
cout<<*p;
Run Code Online (Sandbox Code Playgroud)

为什么未分配的int有值?这个价值是多少?

rob*_*bsn 5

指针的值p是的地址int i.你为它分配了地址&运营商:p = &i.它int i本身未初始化,也称为默认初始化.当您取消引用指针时,*p您将获得未初始化的值,int i这可能是任何值.

你的值int i是未初始化的内存被解释为int.使用未初始化的变量是未定义的行为.

通过简单地执行以下操作,您将拥有相同的行为而没有指针:

int i;
cout << i;
Run Code Online (Sandbox Code Playgroud)