空指针(指针变量指向内存编号为0的空间,内存空间为0~255是不可以被访问的

1.初始化指针为空指针最好的方式:
int *p=nullptr;

2.空指针的作用是:

当不清楚指针应该指向何处时,就把它初始化为nullptr。

3.空指针的注意事项: 

  • 将变量赋值给空指针的操作是错误的,即便变量值恰好是0也不行。
  • 如果对空指针解引用,程序会崩溃。

  • 如果对空指针使用 delete 运算符,系统将忽略该操作,不会出现异常。所以,内存被释放后,也应该把指针指向空。

  • 在函数中,应该有判断形参是否为空指针的代码,目的是保证程序的健壮性。

 

1 if(p==nullptr) return;
野指针(指针变量指向的不是一个有效的地址)
  • 如果对野指针解引用,程序会崩溃。
  • 任何变量都必须初始化之后才能使用,因此当不对指针进行初始化时它是一个野指针,此时还不能对它进行访问。
  • 如果用指针指向了动态分配的内存,内存被释放后,指针不会置空,但是,指向的地址已失效。因此指针指向了动态分配的内存,当释放内存时应该这样做:
1 if (p != nullptr)
2 {
3     p = nullptr;  // 先置为空,防止其他地方使用即将释放的指针
4     delete tmp; // 再释放指针所指向的内存
5 }
 
posted on 2022-11-21 16:59  小凉拖  阅读(60)  评论(0编辑  收藏  举报