Avatar ·

C++ में null/nil क्या है और इसके साथ कैसे काम करें?

प्रश्न: C++ में null/nil क्या है और इसके साथ कैसे काम करें?

साथियों, नमस्ते! मैं Python और Java के बाद C++ पर स्विच कर रहा हूँ और इस भाषा में null/nil की अवधारणा को समझ नहीं पा रहा हूँ। Python में None है, Java में null है, और C++ में मैं nullptr, NULL और सिर्फ 0 देखता हूँ। क्या ये सब एक ही हैं? किन मामलों में क्या उपयोग करना चाहिए?

मैंने ऐसा कोड लिखने की कोशिश की:

#include <iostream>

void foo(int* ptr) {
    if (ptr == NULL) {
        std::cout << "Pointer is NULL" << std::endl;
    }
}

int main() {
    int* p = nullptr;
    foo(p);
    return 0;
}

कोड कंपाइल हो जाता है, लेकिन मुझे यकीन नहीं है कि यह सही है। मैंने std::optional के बारे में भी सुना है — क्या यह पूरी तरह से अलग बात है? या यह null का आधुनिक विकल्प है? मैं स्पष्ट व्याख्या की उम्मीद करता हूँ: C++ में 'null pointer' क्या है, पॉइंटर्स को 'कुछ नहीं' से कैसे सही ढंग से इनिशियलाइज़ करें, और क्या C++ में रेफरेंस (पॉइंटर्स नहीं) के लिए Java/Python के null का कोई एनालॉग है? कृपया nullptr, NULL के साथ उदाहरण दें।