簡體   English   中英

如何區分 c++ 中的 0 和 NULL

[英]how to distinguish 0 and NULL in c++

如何區分c++中的0和NULL? 我只想在元素真的是 NULL 但不是 0 時打印。

vector<int> vec = {0, NULL};
for (auto it : vec){
    if (it == NULL) cout << "NULL";
}

實際上我想使用 NULL 來表示二叉樹中的 NULL 節點(作為向量輸入)。 如果我使用“NULL”,那么輸入不能是簡單的向量,有沒有合適的方法來解決它?

不可能。 在這種情況下,NULL 到處都被 0 替換。 編譯器將 NULL 視為與 0 完全相同。

int 不能是nullptr ,因為它是 integer 類型。

您正在使用宏,因此NULL將替換為 0。因此,您實際上是在檢查每個元素的向量值是否等於 0。

如果要檢查 null 指針,則應使用關鍵字nullptr而不是NULL

如果要存儲指針,則必須使用vector<int*> 在這種情況下,您可以使用簡單的方法輕松檢查 null

if(!ptr) <-- 如果指針不是 null

或者

if( ptr == nullptr )完全一樣。

作為附加說明,您在循環數組時復制每個元素,您應該改用const auto& (或auto& )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM