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

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

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

(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

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

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

पूर्णांक प्रचार

पूर्णांक प्रचार वह प्रक्रिया है जिसके द्वारा पूर्णांक प्रकार के मान "छोटा" int या unsigned int से या तो int में परिवर्तित हो जाते हैं या अहस्ताक्षरित int . एक पूर्णांक के साथ एक वर्ण जोड़ने के उदाहरण पर विचार करें -

उदाहरण

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

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

Value of sum : 116

यहां, योग का मान 116 है क्योंकि संकलक पूर्णांक प्रचार कर रहा है और वास्तविक जोड़ ऑपरेशन करने से पहले 'c' के मान को ASCII में परिवर्तित कर रहा है।

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

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

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

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

उदाहरण

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

आउटपुट

Value of sum : 116.000000

यहां, यह समझना आसान है कि पहला c पूर्णांक में परिवर्तित हो जाता है, लेकिन जैसा कि अंतिम मान दोगुना है, सामान्य अंकगणितीय रूपांतरण लागू होता है और संकलक i और c को 'float' में परिवर्तित करता है और उन्हें एक 'float' परिणाम देता है।

  1. Linux पर c++ के लिए शीर्ष IDE क्या है?

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

  1. विंडो पर c++ के लिए शीर्ष IDE क्या है?

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

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

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