在C语言中,空指针是一个特殊的指针值,它不指向任何有效的内存地址。C语言标准定义了一个宏NULL
来表示空指针常量。在大多数实现中,NULL
被定义为整数0
或者等价于0
的常量表达式,但是C语言标准并不要求必须是0
。在C11标准中,引入了一个新的关键字_Null_pointer
,可以用来声明空指针类型的变量,但通常情况下我们仍然使用NULL
宏。
例如:
int *ptr = NULL;
上面的代码声明了一个指向整数的指针ptr
,并将其初始化为空指针。这意味着ptr
没有指向任何有效的内存地址。
在C语言中,尝试通过空指针访问内存会导致未定义行为,通常会引起程序崩溃,因为操作系统不允许访问无效的内存地址。因此,在使用指针之前,通常需要检查它是否为空:
if (ptr !=