如果我运行以下代码,它会显示一个长数字。
int i;
int *p;
p= &i;
cout<<*p;
为什么未分配的 int 有值?这个值是多少?
最佳答案
指针p
的值是int i
的地址。您为它分配了 &
运算符的地址:p = &i
。 int i
本身没有初始化也叫默认初始化。当你用 *p
取消引用你的指针时,你会得到你未初始化的 int i
的值,它可以是任何东西。
int i
的值是解释为 int
的未初始化内存。使用未初始化的变量是未定义的行为。
如果没有指针,您也可以通过简单地执行以下操作来获得相同的行为:
int i;
cout << i;
关于c++ - 为什么未分配的 int 有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36253397/