NULL就是(Type *)0,他表示一个不指向任何有效内存的空指针
表达式 (Type *)0
将整数 0
转换为类型 Type *
的空指针。空指针用于指示指针不指向任何有效的内存位置,并且在编写健壮的指针操作代码时非常重要。使用空指针可以避免解引用无效指针导致的未定义行为,并有助于编写更安全和更可读的代码。(不让他指个东西的话,就是野指针,他会乱指)
验证实验:
#include <stdio.h>
void printValue(int *p) {
if (p == NULL) {
printf("Pointer is NULL.\n");
} else {
printf("Value: %d\n", *p);
}
}
int main() {
int *ptr1 = (int *)0; // 空指针
int value = 42;
int *ptr2 = &value; // 指向有效内存
printValue(ptr1); // 输出 "Pointer is NULL."
printValue(ptr2); // 输出 "Value: 42"
return 0;
}