首页 > 解决方案 > 为什么没有打印这个指针值?

问题描述

我有一个代码:

 #include <iostream>
using namespace std;

int main()
{
    int *a, y = 6 , *yPtr = &y;

    cout << "y:" << y << "| &y:" << &y << "| yptr:" << yPtr << "| *yptr:" << *yPtr << " | &yptr:" << &yPtr << " |a:" << a << endl;
    *a = y;
    cout<< "a:"<<a<<endl;

    return 0;
}

当我将 *a 分配给 y*a = y然后 *a 没有为我打印的值

标签: c++

解决方案


这是因为你从不初始化a自己。*a指向谁知道在哪里,某个随机位置。所以你将一些随机位置设置为 6。

由于它可能指向法律空间之外,因此您的程序可能在到达cout声明之前就退出了。


推荐阅读