C++面试八股文:什么是空指针/野指针/悬垂指针?
某日二师兄参加XXX科技公司的C++工程师开发岗位第30面:面试官:什么是空指针?
二师兄:一般我们将等于0/NULL/nullptr的指针称为空指针。空指针不能被解引用,但是可以对空指针取地址。
int* p = nullptr; //空指针
*p = 42; //空指针不可以解引用
int** pp = &p //空指针可以取地址面试官:你知道0/NULL/nullptr三者之间的区别吗?
二师兄:虽然三者都能定义空指针,但三者类型不同。
二师兄:0是int类型,NULL在g++下是一个宏定义,而nullptr是有类型的;
#define NULL ((void *)0)
typedef decltype(nullptr) nullptr_t;
sizeof(0);// 4
sizeof(NULL);//8
sizeof(nullptr);//8二师兄:在函数重载时,会根据实参的类型选择重载函数:
#include void fun(int) {std::cout
页:
[1]