Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C और C++ में NULL पॉइंटर अलग-अलग क्यों परिभाषित हैं?

C++ में, एक NULL पॉइंटर को एक NULL पॉइंटर स्थिरांक के रूप में परिभाषित किया जा सकता है जो मान 0 वाला एक पूर्णांक स्थिरांक अभिव्यक्ति है, जैसे:

int* p = 0;

लेकिन C में, एक NULL पॉइंटर को एक NULL पॉइंटर स्थिरांक के रूप में परिभाषित किया जा सकता है जो मान 0 वाला एक पूर्णांक स्थिरांक अभिव्यक्ति है या ऐसा अभिव्यक्ति जिसे void* में कास्ट किया गया हो, जैसे:

int* p = 0;;

या

int* p = (void*) 0;

C++11 में NULL पॉइंटर को दर्शाने के लिए "nullptr" कीवर्ड का उपयोग किया जाता है।

int* ptr = nullptr;

C में

उदाहरण

#include <stdio.h>
int main() {
    int *p = NULL; // पॉइंटर को NULL के रूप में आरंभ करें
    printf("पॉइंटर का मान %u है", p);
    return 0;
}

आउटपुट

पॉइंटर का मान 0 है।

C++ में

उदाहरण

#include <iostream>
using namespace std;
int main() {
    int *p = NULL; // पॉइंटर को NULL के रूप में आरंभ करें
    cout << "पॉइंटर का मान ";
    cout << p;
    return 0;
}

आउटपुट

पॉइंटर का मान 0 है।
  1. C भाषा में विभिन्न पॉइंटर ऑपरेशन्स और पॉइंटर्स की समस्याएं C भाषा में विभिन्न पॉइंटर ऑपरेशन्स और पॉइंटर्स की समस्याएं

    पॉइंटर एक वेरिएबल है जिसका मान दूसरे वेरिएबल का पता होता है, यानी मेमोरी लोकेशन का सीधा पता। किसी भी वेरिएबल या कॉन्स्टेंट की तरह, इसका उपयोग करने से पहले पॉइंटर घोषित करना आवश्यक है। मेमोरी प्रतिनिधित्व int qty = 179; मेमोरी में प्रतिनिधित्व: qty नामक वेरिएबल, पता 5000 पर, मान 179 संग्रहीत करता ह

  1. - C++ में restrict क्वालिफायर का उपयोग क्यों करते हैं?

    C++ में ऐसा कोई कीवर्ड नहीं है। C++ कीवर्ड्स की सूची C++ भाषा मानक के खंड 2.11/1 में पाई जा सकती है। restrict C भाषा के C99 संस्करण में एक कीवर्ड है न कि C++ में। C में, एक restrict-क्वालिफाइड पॉइंटर (या रेफरेंस) मूल रूप से कंपाइलर से एक वादा है कि पॉइंटर के स्कोप के लिए, पॉइंटर का लक्ष्य केवल उस प

  1. - C# में Pointers (पॉइंटर्स) क्या हैं?

    C# में पॉइंटर्स (Pointers) पॉइंटर एक वेरिएबल है जो **दूसरे वेरिएबल का मेमोरी एड्रेस** स्टोर करता है। C# में पॉइंटर्स केवल unsafe कॉन्टेक्स्ट में अनुमत हैं क्योंकि वे टाइप सेफ्टी और मेमोरी सेफ्टी को बायपास करते हैं। सिंटैक्स type* variableName; // C# स्टाइल // उदाहरण: int* p; // int पॉइंटर dou