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

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

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

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

उदाहरण

#include<stdio.h>
int main() {
   printf("The character: %c, size(%d)", 'a', sizeof('a'));
}

आउटपुट

The character: a, size(4)

उदाहरण

#include<iostream.h>
int main() {
   printf("The character: %c, size(%d)", 'a', sizeof('a'));
}

आउटपुट (C++)

The character: a, size(1)

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

उदाहरण

#include<stdio.h>
struct MyStruct{
   int x;
   char y;
};
int main() {
   struct MyStruct st; //struct tag is present
   st.x = 10;
   st.y = 'd';
   printf("Struct (%d|%c)", st.x, st.y);
}

आउटपुट (सी)

Struct (10|d)

उदाहरण

#include<iostream>
struct MyStruct{
   int x;
   char y;
};
int main() {
   MyStruct st; //struct tag is not present
   st.x = 10;
   st.y = 'd';
   printf("Struct (%d|%c)", st.x, st.y);
}

आउटपुट (C++)

Struct (10|d)

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

उदाहरण

#include<stdio.h>
   int main() {
   printf("Bool size: %d", sizeof(1 == 1));
}

आउटपुट (सी)

Bool size: 4

उदाहरण

#include<iostream>
   int main() {
   printf("Bool size: %d", sizeof(1 == 1));
}

आउटपुट (C++)

Bool size: 1

  1. सी++ प्रोग्राम में 'स्ट्रक्चर' और 'टाइपपीफ स्ट्रक्चर' के बीच अंतर?

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

  1. सी ++ में 'स्ट्रक्चर' और 'टाइपिफ़ स्ट्रक्चर' के बीच अंतर?

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

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

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