इस खंड में हम देखेंगे कि जब हम एक वेरिएबल घोषित करते हैं जो गैर-प्रारंभिक है, तो वे सी या सी ++ भाषा में कौन सा मान रखते हैं। कभी-कभी हम यह मान लेते हैं कि कंपाइलर कुछ मान प्रदान करता है जैसे इंट के लिए 0, फ्लोट आदि के लिए 0.0। लेकिन कैरेक्टर डेटाटाइप के लिए क्या होगा? आइए विभिन्न कंपाइलरों का उपयोग करके कार्यान्वयन और संकलन का उपयोग करते हुए देखें।
उदाहरण (C++)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <iostream> using namespace std; int main() { char char_var; float float_var; int int_var; double double_var; long long_var; cout << char_var << endl; cout << float_var << endl; cout << int_var << endl; cout << double_var << endl; cout << long_var << endl; }
आउटपुट (Cpp.sh में संकलित)
0 0 0 0
आउटपुट (ऑनलाइन GDB में संकलित)
5.88054e-39 0 6.95297e-310 0
आउटपुट (स्थानीय सिस्टम)
9.73438e-039 4309744 1.15685e-306 -53505136
अब प्रश्न आता है कि C/C++ कंपाइलर डिफ़ॉल्ट मानों वाले वेरिएबल्स को इनिशियलाइज़ क्यों नहीं करता है? इसका उत्तर सरल है, स्टैक वैरिएबल को इनिशियलाइज़ करने का ओवरहेड महंगा है क्योंकि यह निष्पादन की गति को बाधित करता है, इसके परिणामस्वरूप इन वेरिएबल्स में अनिश्चित मान शामिल हो सकते हैं। इसलिए, इसे कोड में लागू करने से पहले एक आदिम डेटा प्रकार चर को प्रारंभ करना अच्छा अभ्यास माना जाता है।