假设您定义了一个(全局或局部)指针变量,如下所示:
void *this_is_a_pointer;
没有给它赋值 "= NULL; "
这会自动给你一个 NULL ptr(一个指向 NULL 的指针)吗?
* 还有,空指针指向NULL是什么意思?那是说它可以指向字面上的任何地方吗? (基本上,“NULL 的地址位置”到底是什么?)
最佳答案
(global or local)
这实际上是造成差异的原因。
一般来说,如果你没有初始化一个变量,它就不会被初始化并且从它读取是未定义的行为。但是,如果变量具有静态存储持续时间,那么它会自动初始化为零(指针为空)。
// foo.cpp
void* this_is_null;
void whatever(void)
{
static int* and_so_is_this;
}
void not_whatever(void)
{
float* but_this_local_is_uninitialized;
}
关于c - 当您处理 C 和其他具有指针的语言时,初始化指针会自动将其设置为 null 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782260/