cpp11Null 指针常量
时间: 2023-05-31 10:03:20 浏览: 69
在C++11中,可以使用关键字`nullptr`来表示空指针常量。`nullptr`是一个特殊的关键字,表示一个空指针常量。在C++11之前,通常使用`NULL`宏来表示空指针常量,但这种方式容易出现类型转换错误,因为`NULL`宏实际上是一个整数常量,而不是一个真正的指针常量。使用`nullptr`可以避免这种类型转换错误的问题。例如:
```cpp
int *p = nullptr; // p是一个空指针
```
需要注意的是,`nullptr`只能用于指针类型,不能用于整数类型。如果需要将`nullptr`转换为整数类型,需要使用`reinterpret_cast`或者`static_cast`。例如:
```cpp
int *p = nullptr;
int i = reinterpret_cast<int>(p); // 将空指针转换为整数类型
```
相关问题
cpp null 头文件
C++ 中并没有一个名为 "null" 的头文件。但是,C++11 引入了一个新的关键字 "nullptr" 来表示空指针常量。如果你想使用这个关键字,只需要包含 <cstddef> 头文件即可。例如:
```
#include <cstddef>
int main() {
int* ptr = nullptr;
return 0;
}
```
cpp11的所有新特性
1. 自动类型推导
2. 列表初始化
3. foreach循环
4. lambda表达式
5. 右值引用和移动语义
6. 委托构造函数
7. 默认和删除函数
8. constexpr函数和常量表达式
9. 变长参数模板
10. 线程支持库
11. std::unique_ptr和std::shared_ptr
12. std::function
13. std::tuple和std::make_tuple
14. std::array和std::initializer_list
15. std::atomic
16. static_assert
17. override和final关键字
18. Unicode字符串支持
19. Null指针常量
20. Range-Based for循环
21. Move semantics
22. Variadic templates
23. Type traits
24. Lambda expressions
25. Uniform initialization
26. Delegating constructors
27. Explicit conversion operators
28. std::chrono
29. std::condition_variable_any
30. std::future和std::promise
31. Thread-local storage
32. std::regex
33. std::unordered_map和std::unordered_set
34. std::to_string和std::stoi等函数
35. std::forward和std::move函数
36. std::tie函数
37. std::enable_if和std::is_same等类型判定函数