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

सी/सी++ में संदर्भ बनाम पॉइंटर्स का उपयोग कब करें

संदर्भ चर

संदर्भ चर पहले से मौजूद चर का एक वैकल्पिक नाम है। इसे किसी अन्य चर को संदर्भित करने के लिए नहीं बदला जा सकता है और इसे घोषणा के समय प्रारंभ किया जाना चाहिए। यह न्यूल नहीं हो सकता। संदर्भ चर घोषित करने के लिए ऑपरेटर '&' का उपयोग किया जाता है।

संदर्भ चर का सिंटैक्स निम्नलिखित है।

datatype variable_name; // variable declaration
datatype& refer_var = variable_name; // reference variable

यहां,

डेटाटाइप - वेरिएबल का डेटाटाइप जैसे इंट, चार, फ्लोट आदि।

variable_name - यह उपयोगकर्ता द्वारा दिए गए वेरिएबल का नाम है।

refer_var -संदर्भ चर का नाम।

निम्नलिखित संदर्भ चर का एक उदाहरण है।

उदाहरण

#include <iostream>
using namespace std;
int main() {
   int a = 8;
   int& b = a;
   cout << "The variable a: " << a;
   cout << "\nThe reference variable r: " << b;
   return 0;
}

आउटपुट

The variable a: 8
The reference variable r: 8

पॉइंटर्स

मूल रूप से, पॉइंटर्स वेरिएबल होते हैं जो दूसरे वेरिएबल के एड्रेस को स्टोर करते हैं। जब हम किसी वेरिएबल को मेमोरी आवंटित करते हैं, तो पॉइंटर वेरिएबल के पते की ओर इशारा करता है।

पॉइंटर्स का सिंटैक्स निम्नलिखित है।

datatype *variable_name;

यहां,

डेटाटाइप - वेरिएबल का डेटाटाइप जैसे इंट, चार, फ्लोट आदि।

gvariable_name - यह उपयोगकर्ता द्वारा दिए गए वेरिएबल का नाम है।

निम्नलिखित पॉइंटर्स का एक उदाहरण है।

उदाहरण

#include <stdio.h>
int main () {
   int a = 8;
   int *ptr;
   ptr = &a;
   printf("Value of variable: %d\n", a);
   printf("Address of variable: %d\n", ptr);
   printf("Value pointer variable: %d\n",*ptr);
   return 0;
}

आउटपुट

Value of variable: 8
Address of variable: -201313340
Value pointer variable: 8

  1. सी/सी++ पॉइंटर्स बनाम जावा संदर्भ

    पॉइंटर्स C, C++ प्रोग्रामिंग भाषाओं में, पॉइंटर एक वेरिएबल होता है जिसमें दूसरे वेरिएबल का पता होता है। उदाहरण #include <iostream> using namespace std;   int main() {    //int variable    int i = 8;    //pointer variable    int * pI;    

  1. सी ++ में वर्चुअल विनाशकों का उपयोग कब करें?

    स्कॉट मेयर्स इन इफेक्टिव C++ कहते हैं - यदि किसी वर्ग में कोई वर्चुअल फ़ंक्शन है, तो उसके पास एक वर्चुअल डिस्ट्रक्टर होना चाहिए, और वह वर्ग जो बेस क्लास के लिए डिज़ाइन नहीं किया गया है या पॉलीमॉर्फिक रूप से उपयोग करने के लिए डिज़ाइन नहीं किया गया है, उसे वर्चुअल डिस्ट्रक्टर घोषित नहीं करना चाहिए।

  1. मैं अग्रेषित घोषणा सी/सी++ का उपयोग कब कर सकता हूं?

    फॉरवर्ड डिक्लेरेशन से डिक्लेरेशन के बाद के कोड को पता चलता है कि Person नाम के साथ कुछ क्लासेज हैं। यह संकलक को संतुष्ट करता है जब वह इन नामों का उपयोग देखता है। बाद में लिंकर को कक्षाओं की परिभाषा मिल जाएगी। उदाहरण Class Person; void myFunc(Person p1) {    // ... } Class Person {