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

C/C++ में पॉइंटर्स की तुलना करना

हम पॉइंटर्स की तुलना कर सकते हैं यदि वे एक ही सरणी की ओर इशारा कर रहे हों। संबंधपरक ऑपरेटर्स का उपयोग दो पॉइंटर्स की तुलना के लिए किया जा सकता है। पॉइंटर्स को गुणा या विभाजित नहीं किया जा सकता।

C में

उदाहरण

#include <stdio.h>
int main() {
    int *p2;
    int *p1;
    p2 = (int *)300;
    p1 = (int *)200;
    if(p1 > p2) {
        printf("P1, p2 से बड़ा है");
    } else {
        printf("P2, p1 से बड़ा है");
    }
    return 0;
}

आउटपुट

P2, p1 से बड़ा है

C++ में

उदाहरण

#include <iostream>
using namespace std;
int main() {
    int *p2;
    int *p1;
    p2 = (int *)300;
    p1 = (int *)200;
    if(p1 > p2) {
        cout << "P1, p2 से बड़ा है";
    } else {
        cout << "P2, p1 से बड़ा है";
    }
    return 0;
}

आउटपुट

P2, p1 से बड़ा है

पॉइंटर तुलना के बारे में कुछ मुख्य बिंदु:

  • यदि समान प्रकार के दो पॉइंटर्स p1 और p2 एक ही ऑब्जेक्ट या फ़ंक्शन की ओर इशारा करते हैं, या दोनों एक ही सरणी के अंत से एक आगे इशारा करते हैं, या दोनों NULL हैं, तो p1<=p2 और p1>=p2 दोनों सत्य देते हैं और p1p2 दोनों असत्य देते हैं।
  • यदि दो पॉइंटर्स अलग-अलग ऑब्जेक्ट्स की ओर इशारा करते हैं जो एक ही ऑब्जेक्ट के सदस्य नहीं हैं या एक ही सरणी के तत्व नहीं हैं या अलग-अलग फ़ंक्शन्स की ओर इशारा करते हैं, या यदि उनमें से केवल एक NULL है, तो p1p2, p1<=p2 और p1>=p2 अनिर्दिष्ट हैं।
  • यदि दो पॉइंटर्स एक ही ऑब्जेक्ट के नॉन-स्टैटिक डेटा सदस्यों की ओर इशारा करते हैं, या ऐसे सदस्यों के सबऑब्जेक्ट्स या सरणी तत्वों की ओर इशारा करते हैं, समान एक्सेस कंट्रोल के साथ, तो परिणाम निर्दिष्ट होता है।
  • यदि दो पॉइंटर्स एक ही ऑब्जेक्ट के नॉन-स्टैटिक डेटा सदस्यों की ओर अलग-अलग एक्सेस कंट्रोल के साथ इशारा करते हैं, तो परिणाम अनिर्दिष्ट होता है।
  1. - C/C++ में प्रीप्रोसेसर कैसे काम करता है?

    प्रीप्रोसेसर क्या है? प्रीप्रोसेसर डायरेक्टिव्स हैं, जो कंपाइलर को वास्तविक कंपाइलेशन शुरू होने से पहले जानकारी को प्रीप्रोसेस करने के निर्देश देते हैं। सभी प्रीप्रोसेसर डायरेक्टिव्स # से शुरू होते हैं, और एक लाइन पर प्रीप्रोसेसर डायरेक्टिव से पहले केवल व्हाइट-स्पेस कैरेक्टर्स आ सकते हैं। प्रीप्रोस

  1. - C/C++ में कैसे जांचें कि स्ट्रिंग इंटीजर है?

    यह जांचने के कई तरीके हैं कि स्ट्रिंग इंटीजर है या नहीं और उनमें से एक तरीका isdigit() का उपयोग करके स्ट्रिंग की जांच करना है। उदाहरण #include <iostream> #include <string.h> using namespace std; int main() { char str[] = 3257fg; for (int i = 0; i < strlen(str); i++) {

  1. - C++ में float और double की तुलना कैसे करें?

    float और double वेरिएबल्स की तुलना इस बात पर निर्भर करती है कि आपका अंतिम लक्ष्य क्या है। यदि आप बहुत अधिक विवरण में जाए बिना एक रन करने योग्य फ़ंक्शन चाहते हैं और कुछ गलत गणनाओं में कोई समस्या नहीं होगी, तो आप निम्न फ़ंक्शन का उपयोग कर सकते हैं: उदाहरण #include<iostream> using namespace std