Visual C++ 6.0中指针的默认值是什么?Visual C++ 6.0中指针的默认值
如果问题很重要,我的问题尤其是指栈上的变量。
在这种情况下,myArray最初是一个NULL指针还是会有一个未定义的值?
double* myArray;
Visual C++ 6.0中指针的默认值是什么?Visual C++ 6.0中指针的默认值
如果问题很重要,我的问题尤其是指栈上的变量。
在这种情况下,myArray最初是一个NULL指针还是会有一个未定义的值?
double* myArray;
未定义。
C++没有为未初始化的指针定义默认值。
如果您正在使用visual studio进行调试,那么未初始化变量的初始值有时就像0xcdcdcdcd。该值根据变量的位置而变化 - 堆栈上或堆上。然而,在发布版本中这不是真的,你不能以任何方式依赖它。
这是垃圾。
您的myArray会产生垃圾值
这是未定义的。即使VC++ 6.0绝对保证使用特定的值,它仍然是C++标准未定义的。您应该始终避免编译器特定的功能。你现在可能不会认为你需要将代码移动到另一个编译器,但是迟早你会的,它会中断。
而且是这么难说:
double* myArray = NULL;
没有在Visual C指针的默认++ 6.如果没有声明,则指针没有初始化,所以值将是不确定的(意为“垃圾”)。这就是为什么当声明时(或者在类的指针成员的构造函数的初始化列表中)初始化指针时,建议最佳做法。
指针在运行时定义为占用内存中的某个位置。其初始值将由恰好位于该位置的任何位模式来定义。没有办法事先确定它。
正如其他地方所声明的那样,声明它的初始值为null,或者任何对您最方便的方法。