हम समझेंगे कि C और C++ कैसे अलग-अलग व्यवहार करते हैं जब हम बिना इनिशियलाइज़ेशन के ग्लोबल वेरिएबल को पुनः घोषित करते हैं, इनिशियलाइज़ेशन के साथ ग्लोबल वेरिएबल्स को पुनः घोषित करते हैं, ग्लोबल वेरिएबल्स को पुनः घोषित करते हैं और उन्हें दो बार इनिशियलाइज़ करते हैं। साथ ही, हम स्थानीय वेरिएबल्स के साथ उपरोक्त संयोजनों को दोहराएंगे।
1. A) C प्रोग्राम: बिना इनिशियलाइज़ेशन के ग्लोबल वेरिएबल्स को पुनः घोषित करना
#include <stdio.h>
int var;
int var;
int main(){
printf("Var = %d",var);
return 0;
}
आउटपुट
Var = 0
B) C++ प्रोग्राम: बिना इनिशियलाइज़ेशन के ग्लोबल वेरिएबल्स को पुनः घोषित करना
#include <iostream>
using namespace std;
int var;
int var;
int main(){
cout<<"Var = "<<var;
return 0;
}
आउटपुट
कंपाइलेशन त्रुटि: int var; main.cpp:3:5: note: 'int var' previously declared here
परिणाम:- C बिना इनिशियलाइज़ेशन के ग्लोबल वेरिएबल्स की पुनः घोषणा की अनुमति देता है। मान 0 रहता है। C++ एक कंपाइलेशन त्रुटि देता है कि वेरिएबल पुनः घोषित है।
2. A) C प्रोग्राम: बिना इनिशियलाइज़ेशन के लोकल वेरिएबल्स को पुनः घोषित करना
#include <stdio.h>
#include <stdio.h>
int main(){
int var;
int var;
printf("Var = %d",var);
return 0;
}
आउटपुट
त्रुटि: 'var' का पुनः घोषणा बिना लिंकेज के
B) C++ प्रोग्राम: बिना इनिशियलाइज़ेशन के लोकल वेरिएबल्स को पुनः घोषित करना
#include <iostream>
using namespace std;
int main(){
int var;
int var;
cout<<"Var = "<<var;
return 0;
}
आउटपुट
त्रुटि: 'int var' का पुनः घोषणा
परिणाम:- C और C++ दोनों बिना इनिशियलाइज़ेशन किए लोकल वेरिएबल्स की पुनः घोषणा की अनुमति नहीं देते। दोनों प्रोग्राम कंपाइलेशन में विफल रहे।
3. A) C प्रोग्राम: इनिशियलाइज़ेशन के साथ ग्लोबल वेरिएबल्स को पुनः घोषित करना
#include <stdio.h>
int main(){
int var;
int var=10;
printf("Var = %d",var);
return 0;
}
आउटपुट
Var = 10
B) C++ प्रोग्राम: इनिशियलाइज़ेशन के साथ ग्लोबल वेरिएबल्स को पुनः घोषित करना
#include <iostream>
using namespace std;
int var;
int var=10;
int main(){
cout<<"Var = "<<var;
return 0;
}
आउटपुट
main.cpp:7:9: error: redeclaration of 'int var' int var;
परिणाम:- C अनइनिशियलाइज़्ड होने पर ग्लोबल वेरिएबल की पुनः घोषणा की अनुमति देता है। C++ प्रोग्राम कंपाइलेशन के दौरान विफल होता है।
4. A) C प्रोग्राम: इनिशियलाइज़ेशन के साथ ग्लोबल वेरिएबल्स को पुनः घोषित करना
#include <stdio.h>
int var;
int var=10;
int main(){
printf("Var = %d",var);
return 0;
}
आउटपुट
त्रुटि: 'var' का पुनः घोषणा बिना लिंकेज के
B) C++ प्रोग्राम: इनिशियलाइज़ेशन के साथ लोकल वेरिएबल्स को पुनः घोषित करना
#include <iostream>
using namespace std;
int main(){
int var;
int var=10;
cout<<"Var = "<<var;
return 0;
}
आउटपुट
त्रुटि: 'int var' का पुनः घोषणा
परिणाम:- C और C++ दोनों इनिशियलाइज़्ड होने पर भी लोकल वेरिएबल्स की पुनः घोषणा की अनुमति नहीं देते। दोनों प्रोग्राम कंपाइलेशन में विफल रहे।