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

C/C++ में टाइप कास्ट क्या है?


टाइप कास्टिंग एक वेरिएबल को एक डेटा टाइप से दूसरे डेटा टाइप में बदलने का एक तरीका है। उदाहरण के लिए, यदि आप एक 'long' मान को एक साधारण इंटीजर में संग्रहीत करना चाहते हैं तो आप 'long' को 'int' में टाइप कास्ट कर सकते हैं। आप कास्ट ऑपरेटर का उपयोग करके मानों को एक प्रकार से दूसरे प्रकार में स्पष्ट रूप से बदल सकते हैं जैसे कि -

(type_name) expression

निम्नलिखित उदाहरण पर विचार करें जहां कास्ट ऑपरेटर एक इंटीजर वेरिएबल को दूसरे से विभाजित करने का कारण बनता है जिसे फ्लोटिंग-पॉइंट ऑपरेशन के रूप में निष्पादित किया जाता है -

उदाहरण

#include <stdio.h> main() {    int sum = 17, count = 5;    double mean;    mean = (double) sum / count;    printf("Value of mean : %f\n", mean ); }

जब उपरोक्त कोड कंपाइल और निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Value of mean : 3.400000

यह ध्यान दिया जाना चाहिए कि कास्ट ऑपरेटर का डिवीजन पर प्रीसिडेंस होता है, इसलिए sum का मान पहले डबल टाइप में परिवर्तित होता है और अंत में यह count से विभाजित होकर एक double मान देता है।

टाइप रूपांतरण अंतर्निहित हो सकते हैं जो कंपाइलर द्वारा स्वचालित रूप से किए जाते हैं, या कास्ट ऑपरेटर के उपयोग के माध्यम से स्पष्ट रूप से निर्दिष्ट किए जा सकते हैं। जब भी टाइप रूपांतरण आवश्यक हो, कास्ट ऑपरेटर का उपयोग करना अच्छी प्रोग्रामिंग प्रैक्टिस माना जाता है।

इंटीजर प्रमोशन

इंटीजर प्रमोशन वह प्रक्रिया है जिसके द्वारा int या unsigned int से "छोटे" इंटीजर प्रकार के मानों को या तो int या unsigned int में परिवर्तित किया जाता है। एक कैरेक्टर को इंटीजर में जोड़ने का एक उदाहरण लें -

उदाहरण

#include <stdio.h> main() {    int i = 17;    char c = 'c'; /* ascii मान 99 है */    int sum;    sum = i + c;    printf("Value of sum : %d\n", sum ); }

जब उपरोक्त कोड कंपाइल और निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Value of sum : 116

यहां, sum का मान 116 है क्योंकि कंपाइलर इंटीजर प्रमोशन कर रहा है और वास्तविक जोड़ ऑपरेशन करने से पहले 'c' के मान को ASCII में परिवर्तित कर रहा है।

सामान्य अंकगणितीय रूपांतरण

सामान्य अंकगणितीय रूपांतरण उनके मानों को एक सामान्य प्रकार में कास्ट करने के लिए अंतर्निहित रूप से किए जाते हैं। कंपाइलर पहले इंटीजर प्रमोशन करता है; यदि ऑपरेंड में अभी भी अलग-अलग प्रकार हैं, तो उन्हें उस प्रकार में परिवर्तित किया जाता है जो निम्नलिखित पदानुक्रम में सबसे ऊपर दिखाई देता है -

C/C++ में टाइप कास्ट क्या है?

सामान्य अंकगणितीय रूपांतरण असाइनमेंट ऑपरेटर्स के लिए नहीं किए जाते हैं, न ही लॉजिकल ऑपरेटर्स && और || के लिए। अवधारणा को समझने के लिए निम्नलिखित उदाहरण लें -

उदाहरण

#include <stdio.h> main() {    int i = 17;    char c = 'c'; /* ascii मान 99 है */    float sum;    sum = i + c;    printf("Value of sum : %f\n", sum ); }

आउटपुट

Value of sum : 116.000000

यहां, यह समझना सरल है कि पहले c को इंटीजर में परिवर्तित किया जाता है, लेकिन चूंकि अंतिम मान डबल है, सामान्य अंकगणितीय रूपांतरण लागू होता है और कंपाइलर i और c को 'float' में परिवर्तित करता है और उन्हें जोड़कर 'float' परिणाम देता है।


  1. - लिनक्स पर C++ के लिए शीर्ष IDE

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। यहां लिनक्स के लिए सर्वश्रेष्ठ C/C++ IDEs की सूची दी गई है। NetBeans

  1. - विंडोज पर C++ के लिए शीर्ष IDE

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। यहां विंडोज के लिए सर्वश्रेष्ठ C/C++ IDEs की सूची दी गई है। Visual S

  1. - C# में बॉक्सिंग क्या है?

    बॉक्सिंग वैल्यू टाइप को ऑब्जेक्ट टाइप में बदलता है। आइए बॉक्सिंग का एक उदाहरण देखें:int x = 50; object ob = x; // boxingबॉक्सिंग में, स्टैक पर स्टोर किया गया मान हीप मेमोरी पर स्टोर ऑब्जेक्ट में कॉपी हो जाता है, जबकि अनबॉक्सिंग इसके विपरीत है।बॉक्सिंग वैल्यू टाइप्स को गार्बेज-कलेक्टेड हीप में स्टोर