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

C और C++ दोनों में वैध कोड लेकिन अलग आउटपुट उत्पन्न करता है


यहां हम कुछ ऐसे प्रोग्राम देखेंगे जो C या C++ कंपाइलर में कंपाइल किए जाने पर अलग-अलग परिणाम देंगे। हम ऐसे कई प्रोग्राम ढूंढ सकते हैं, लेकिन यहां हम उनमें से कुछ पर चर्चा कर रहे हैं।

  • C और C++ में, कैरेक्टर लिटरल्स को अलग तरीके से माना जाता है। C में, उन्हें int माना जाता है लेकिन C++ में, उन्हें कैरेक्टर माना जाता है। इसलिए यदि हम sizeof() ऑपरेटर का उपयोग करके आकार की जांच करते हैं, तो यह C में 4 और C++ में 1 लौटाएगा।

उदाहरण (C)

#include <stdio.h>

int main() {
    printf("The character: %c, size(%d)", 'a', sizeof('a'));
}

आउटपुट (C)

The character: a, size(4)

उदाहरण (C++)

#include <iostream>

int main() {
    printf("The character: %c, size(%d)", 'a', sizeof('a'));
}

आउटपुट (C++)

The character: a, size(1)

C में यदि हम स्ट्रक्चर का उपयोग करते हैं, तो हमें इसका उपयोग करते समय स्ट्रक्चर टैग का उपयोग करना होगा जब तक कि कुछ typedef उपयोग न किया जाए। लेकिन C++ में, हमें स्ट्रक्चर का उपयोग करने के लिए स्ट्रक्चर टैग की आवश्यकता नहीं है।

उदाहरण (C)

#include <stdio.h>

struct MyStruct {
    int x;
    char y;
};

int main() {
    struct MyStruct st; // स्ट्रक्चर टैग मौजूद है
    st.x = 10;
    st.y = 'd';
    printf("Struct (%d|%c)", st.x, st.y);
}

आउटपुट (C)

Struct (10|d)

उदाहरण (C++)

#include <iostream>

struct MyStruct {
    int x;
    char y;
};

int main() {
    MyStruct st; // स्ट्रक्चर टैग मौजूद नहीं है
    st.x = 10;
    st.y = 'd';
    printf("Struct (%d|%c)", st.x, st.y);
}

आउटपुट (C++)

Struct (10|d)

बूलियन प्रकार के डेटा का आकार C और C++ में अलग होता है।

उदाहरण (C)

#include <stdio.h>

int main() {
    printf("Bool size: %d", sizeof(1 == 1));
}

आउटपुट (C)

Bool size: 4

उदाहरण (C++)

#include <iostream>

int main() {
    printf("Bool size: %d", sizeof(1 == 1));
}

आउटपुट (C++)

Bool size: 1
  1. - C++ प्रोग्राम में 'struct' और 'typedef struct' में अंतर

    मूल रूप से struct का उपयोग एक संरचना को परिभाषित करने के लिए किया जाता है। लेकिन जब हम इसका उपयोग करना चाहते हैं तो हमें C में struct कीवर्ड का उपयोग करना होता है। यदि हम typedef कीवर्ड का उपयोग करते हैं, तो एक नया नाम, हम उस नाम से struct का उपयोग कर सकते हैं, बिना struct कीवर्ड लिखे। C++ में, str

  1. - C++ में 'struct' और 'typedef struct' में अंतर?

    C++ में, struct और typedef struct के बीच कोई अंतर नहीं है क्योंकि, C++ में, सभी struct/union/enum/class घोषणाएं ऐसा व्यवहार करती हैं जैसे वे इम्प्लिसिटली typedefed हैं, जब तक कि नाम उसी नाम की किसी अन्य घोषणा द्वारा छिपा नहीं जाता। हालांकि एक सूक्ष्म अंतर है कि typedefs को फॉरवर्ड डिक्लेयर नहीं किय

  1. - क्या C++ वेरिएबल const और volatile दोनों हो सकता है?

    हां, एक C++ वेरिएबल const और volatile दोनों हो सकता है। इसका उपयोग उन स्थितियों में किया जाता है जैसे रीड-ओनली हार्डवेयर रजिस्टर, या किसी अन्य थ्रेड का आउटपुट। Volatile का अर्थ है कि इसे करंट थ्रेड के लिए बाहरी किसी चीज़ द्वारा बदला जा सकता है और Const का अर्थ है कि आप उसमें नहीं लिखते (उस प्रोग्राम