空指針常量(nullptr)
不要在讓 pointer 去判斷是否等於 0 or NULL 了!!!
在 C++11 中引入了空指針常量 nullptr,它可以用來代替傳統的 NULL 或 0,以提高程式碼的清晰度和安全性。
以下是一個簡單的範例
直接看 code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
void foo(int* ptr) {
if (ptr == nullptr) {
std::cout << "Pointer is null." << std::endl;
} else {
std::cout << "Pointer is not null." << std::endl;
}
}
int main() {
int* ptr = nullptr; // 使用 nullptr 初始化指針
foo(ptr); // 呼叫函數並傳遞空指針
int* ptr2 = 0; // 使用整數 0 初始化指針
foo(ptr2); // 呼叫函數並傳遞整數 0
return 0;
}
使用時機:
- 指針判斷: 在程式碼中需要判斷指針是否為空時,使用 nullptr 更加清晰明確,並且避免了與整數的混淆。
- 函數調用: 當需要傳遞空指針給函數作為參數時,使用 nullptr 可以表達清晰的意圖,而不是使用 0 或 NULL。
- new 運算子: 在動態分配內存時,使用 nullptr 作為初始化指針的初始值更加安全,因為它表明這個指針是空的,而不是指向了一個未知的地址。
- 與模板一起使用: 在 C++ 中,模板編程中經常需要使用空指針,使用 nullptr 可以使得程式碼更加一致和通用。
人會成長,programming language 也會成長,所以一起成長吧!哈
