##空指针

本文介绍了C++中的空指针nullptr,强调了使用nullptr代替NULL以避免二义性。讲解了typedef和using的用法,特别是与模板的结合。此外,还详细讨论了C++中字符串的表示,包括标准库<string>的使用,如length、at、front、back等方法,并展示了如何判断字符串是否为空以及如何进行字符串连接操作。
摘要由CSDN通过智能技术生成

空指针:

与C对比:

#define NULL(void *) 0

C中的空指针为NULL C++中的空指针则定义为宏

#define NULL  0

当在C++中需要定义我们的指针为空时,不要使用NULL,使用nullptr,否则容易出现二义性

void func(char * p){}

void func(int x) {}

int main()

{

  func(NULL);//此时在C++中认为调用的是func(int x) 因为在C++中认为NULL是0

}

此时应该使用 关键字 func(nullptr);//调用 func(char *p)  nullptr是指针为空的常量值 

注意:

1.nullptr是C11新引入的关键字,是一个所谓“指针空值类型”的常量,在C++程序中直接使用

2.在C11中,sizeof(nullptr)与sizeof((void *)0) 所占的字节数相同都(4或8)。

3.为了提高代码的健壮性,在后续表示指针建空值时,建议最好使用nullptr。

根据以上当比较指针是否为空时,可以这样写:

int *p=nullptr;

if(p==nullptr);   //是正确的

typedef

ty

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值