【发布时间】:2016-08-26 00:36:00
【问题描述】:
当我这样做时,它会完美地打印出“2”。
int main()
{
int *p;
int x = 2;
*p = x;
cout << *p;
}
但是当我第一次将 *p 初始化为 null 时,程序崩溃了。
int main()
{
int *p=0;
int x = 2;
*p = x;
cout << *p;
}
我想问一下,第一个程序一开始就成功运行了,为什么可以给一个未初始化的指针赋值?
[编辑] 我的问题实际上与我得到的这个过去的考试问题有关。您可以勾选多个答案,而且 (b) 和 (c) 似乎都是正确的。但现在我知道 (c) 是否有效完全是由于运气。
【问题讨论】:
-
永远不要使用未初始化的指针。而且,在添加对指针变量的引用之前,不应取消引用指针变量。否则它可以给你任何结果。
标签: c++ pointers variable-assignment