零点常数

本文详细介绍了C++和C++11中nullptr的用法及其与空指针的区别,并探讨了枚举类型的特性与安全性。重点解释了nullptr在C++11中的定义、作用及与零常量的兼容性,同时对比了传统空指针与nullptr的用法,帮助开发者理解并正确使用这些特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1
2
3
const std::vector<int> v(5); // declare a vector v
auto a = v[0]; // a will be type int because v[0] is an int
decltype(v[0]) b = 1; // b will be type const int&, which is the return type of std::vector<int>::operator[](size_type) const

一般来说,如果你需要一个变量,你要初始化式,使用自动。decltype更好当你需要的东西是不是一个变量的类型,像一个返回类型。

nullptr型

在C和C++以前的迭代,0作为常量整数作为空指针常量,这就是为什么下面的怪事发生:

1
2
int *p = 1; // illegal, can't assign an int to an int* variable
int *q = 0; // legal, 0 has a special meaning as a null pointer

C + + 11定义了一个新的保留标识符被称为nullptr(类型nullptr_t)不是整数,不能转换为整数(但奇怪的是,它可以被转换为布尔值false)。0保持向后兼容的目的,一个有效的零点常数。

枚举类型

(注:以下是尚未通过Visual Studio 2010的支持,但它足够简单跟随甚至没有尝试的例子自己)

在C + + 03,枚举类型安全的-他们不被视为整数,即使当枚举类型是不同的。考虑以下情况:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值