c++ - 为什么没有打印这个指针值?
问题描述
我有一个代码:
#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 没有为我打印的值
解决方案
这是因为你从不初始化a
自己。*a
指向谁知道在哪里,某个随机位置。所以你将一些随机位置设置为 6。
由于它可能指向法律空间之外,因此您的程序可能在到达cout
声明之前就退出了。
推荐阅读
- ios - 条件中对“<”的模棱两可的引用 | 迅速
- ios - 使用 Swift 在输出流上发送字节
- python - Keras 神经网络模型在训练后不会像在 python 代码中那样在 android 代码中返回相同的预测
- python - Keras ValueError:检查目标时出错:预期dense_5具有形状(1,)但得到形状为(0,)的数组
- c# - In CMake, how to set a C# project's external references to specific versions?
- r - How do I remove duplicated columns from a data frame in R?
- angular - Angular - if statement to checking current route
- docker - Docker compose 服务名与外网冲突
- php - 广告 4 块后自动阻止广告
- python - 计算组的扩展标准差