C++面试八股文:什么是空指针/野指针/悬垂指针?

打印 上一主题 下一主题

主题 922|帖子 922|积分 2766

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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表