假设您已经定义了一个(全局或局部)指针变量,例如:
void *this_is_a_pointer;
Run Code Online (Sandbox Code Playgroud)
没有给它值"= NULL;"
这会自动给你一个NULL ptr(一个指向NULL的指针)吗?
*另外,空指针指向NULL意味着什么?这是说它可以指向字面上的任何地方吗?(基本上,什么是" NULL的地址位置"?)
(全球或本地)
这实际上是产生差异的原因.
通常,如果您没有初始化变量,那么它不会被初始化,并且从中读取它是未定义的行为.但是如果变量具有静态存储持续时间,那么它会自动初始化为零(指针为null).
// 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |