醋醋百科网

Good Luck To You!

C++高频考点【必备】(c++必背)

1、野指针和悬挂指针


野指针是指没有初始化的指针;悬挂指针是指指向的内存已经被释放的指针。野指针和悬挂指针都是指向不安全不可控的内存,如果操作该指针会发生意想不到的结果。

如何避免?

  • 定义指针要初始化
  • 释放指针后赋值NULL
  • 使用智能指针

2、NULL和nullptr区别


  • NULL不是关键字,它是宏。
#define NULL 0 
或
#define NULL (void*)0
  • nullptr是nullptr_t的一个实例。

注意:NULL在C++中表示空指针时具有二义性问题

在C语言中用NULL表示空指针,使用(void *)0赋值会隐式类型转换为对应的指针类型。在C++中不能把(void *)0隐式转换成其它类型,所以NULL只能用0表示空指针,但在函数重载时会出现二义性问题。最终C++11引入nullptr来解决这个问题。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言