Visual C ++ 6.0中指针的默认值是什么。
如果重要,我的问题特别提到堆栈上的变量。
在这种情况下,myArray最初是一个NULL指针还是它有一个未定义的值?
double* myArray;
答案 0 :(得分:6)
未定义。
C ++没有为未初始化的指针定义默认值。
如果您正在使用visual studio进行调试,那么未初始化变量的初始值有时类似于0xcdcdcdcd。此值根据变量的位置而变化 - 在堆栈上或堆上。然而,在发布版本中并非如此,您不能以任何方式依赖它。
Here's some more information关于这些价值观。
答案 1 :(得分:2)
这是垃圾。
答案 2 :(得分:2)
未定义。即使VC ++ 6.0绝对保证使用特定值,C ++标准仍然不会定义它。您应该不惜一切代价避免编译器特定功能。你现在可能不认为你需要将代码移动到另一个编译器,但是迟早你会,它会破坏。
这很难说:
double* myArray = NULL;
答案 3 :(得分:0)
你的myArray会有垃圾值
答案 4 :(得分:0)
Visual C ++ 6中没有指针的默认值。如果未声明,则指针未初始化,因此该值将是未定义的(表示“垃圾”)。这就是为什么建议在声明时初始化指针(或者在类的指针成员的构造函数的初始化列表中)作为最佳实践的原因。
答案 5 :(得分:0)
指针在运行时定义为占用内存中的某个特定位置。它的初始值将由恰好位于该位置的任何位模式定义。没有办法事先确定它。
如其他地方所述,使用初始值null或者对您最方便的任何内容声明它。