Basic pointers and dereferencing c++ In Hindi

Basic pointers and dereferencing c++ In Hindi

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

Basic pointers and dereferencing c++ In Hindi

So, let’s get to know the pointer data type in C++ programming better.

  • C++ प्रोग्रामिंग में पॉइंटर पैरामीटर को डिक्लेयर करना।
  • पॉइंटर वेरिएबल डाटा टाइप को इनिशियलाइज़ करना।
  • पॉइंटर वेरिएबल डाटा टाइप को डीरेफरेंस करना।
  • एरे और डायनामिक मेमोरी वेरिएबल के साथ एक पॉइंटर्स डाटा टाइप का यूज़ करना।

So, let’s understand the pointer data type concept in C++ programming in detail.

Declaring and initializing pointer data types in C++ programs.

C++ प्रोग्रामिंग में डिक्लेअर एक पॉइंटर * सिंबल मल्टिप्लाय ऑपरेटर का यूज़ करके किसी पॉइंटर वेरिएबल को डिक्लेयर किया जाता है। यहाँ पॉइंटर का डाटा टाइप उस वेरिएबल के डाटा टाइप से प्रॉपर मैच करता है, जिसकी ओर वह पॉइंटर से पॉइंट करता है।

Pointer Data Type Declaration Syntax.

Type* pointerVariableName;

Element of Pointer Data Type.

  • यहाँ पॉइंटर का Type उस वेरिएबल का डेटा टाइप नेचर है, जिसकी ओर पॉइंटर वेरिएबल पॉइंट करेगा। जैसे, int, char, double, आदि डाटा टाइप मेथड है।
  • यहाँ यूजर डिफाइन pointerVariableName मौजूदा प्रोग्राम में पॉइंटर वेरिएबल का नाम है।

Example of a Pointer Data Type variable.

int* ptr; // यहाँ एक इंटीजर वेरिएबल के लिए पॉइंटर डिक्लेयर किया गया है

यहाँ, ptr एक int डाटा टाइप के लिए एक पॉइंटर वेरिएबल डिक्लेरेशन है। यह एक इंटीजर डाटा टाइप का मेमोरी एड्रेस वैल्यू को स्टोर कर सकता है।

Initializing Pointer Variables.

C++ प्रोग्राम में एक पॉइंटर को एक वेरिएबल का मेमोरी एड्रेस असाइन करके इनिशियलाइज़ किया जाता है। C++ यूजर किसी प्रोग्राम में डिक्लेअर पॉइंटर वेरिएबल का मेमोरी एड्रेस डिस्प्ले करने के लिए एड्रेस-ऑफ़ ऑपरेटर (&) सिंबल का यूज़ कर सकते हैं।

int test = 19; // Here we have declared a simple integer variable

int* ptr = &test; // Here test is initialized to the address of the pointer variable

यहाँ, इस एक्साम्प्ल में ptr पॉइंटर अब test वेरिएबल की ओर पॉइंट करता है।

Dereferencing Pointer Data Variables.

C++ प्रोग्राम में पॉइंटर को डीरेफरेंस करने का मतलब है, उस पॉइंटर वेरिएबल मेमोरी एड्रेस पर स्टोर वैल्यू को एक्सेस करना है. जिस ओर पॉइंटर उसे पॉइंट कर रहा है। C++ यूजर यहाँ डीरेफरेंस ऑपरेटर (*) को अप्लाई करके इसे कर सकते हैं।

Syntax of Dereferencing Pointer.

*pointerVariableName

यह C++ यूजर को मौजूदा प्रोग्राम में पॉइंटर में स्टोर मेमोरी एड्रेस पर स्टोर वैल्यू को प्रोवाइड करता है।

Example of Dereferencing Pointer.

#include <iostream>

int main() {

    int test = 19;       // here we declare a regular integer variable

    int* ptr = &test;    // here pointer initialized to the address of test variable

    std::cout << “The Value of test variable is – ” << test << std::endl;        // here it directly accessing test

    std::cout << “Here Pointer points to its value – ” << *ptr << std::endl;  // here it dereferencing ptr

    return 0;

}

Explanation of Dereferencing Pointer.

  • यहाँ इस एक्साम्प्ल में *ptr पॉइंटर ptr को डीरेफरेंस करता है, जिससे C++ यूजर को उस मेमोरी एड्रेस पर स्टोर वैल्यू मिलती है, जिस पर वह पॉइंट करता है। इस कंडीशन में, यह 19 वैल्यू है।

Pointer Arithmetic in C++.

C++ प्रोग्राम में पॉइंटर डीरेफरेंसिंग के साथ ही यह पॉइंटर अरिथमेटिक ऑपरेशन को भी फुल सपोर्ट करता हैं। पॉइंटर अरिथमेटिक C++ यूजर को एरे या मेमोरी ब्लॉक में प्रॉपर सीक्वेंस में ट्रैवर्स करने में हेल्प करता है।

Syntax of Pointer Arithmetic.

  • Increment a pointer – C++ प्रोग्राम में ptr++ जिस पॉइंटर डाटा टाइप ptr वैल्यू को पॉइंट कर रहा है, यह उसे उसकी नेक्स्ट मेमोरी लोकेशन पर यह मूव करता है।
  • Decrement a pointer – C++ प्रोग्राम में ptr– प्रीवियस मेमोरी लोकेशन पर मूव करता है।
  • Add an integer to a pointer – C++ प्रोग्राम में ptr + n यह n पोजीशन से फॉरवर्ड तक मूव करता है।
  • Subtract an integer from a pointer – C++ प्रोग्राम में ptr – n n पोजीशन बैकवर्ड पोजीशन पर मूव करता है।

Example of Pointer Arithmetic.

#include <iostream>

int main() {

    int array[] = {98, 44, 59, 67, 55, 99};

    int* ptr = array;  // here we define pointer to the first element of the array

    std::cout << “First array element is – ” << *ptr << std::endl;  // here we dereferencing ptr (points to array[0])

    ptr++;  // here it move to the next element in the array

    std::cout << “Second array element is – ” << *ptr << std::endl;  // here we dereferencing new position (array[1])

    ptr += 2;  // here it two positions ahead (points to array[3])

    std::cout << “Fifth array element is – ” << *ptr << std::endl;  // here we dereferencing new position (array[3])

    return 0;

}

Explanation of Pointer Arithmetic.

  • यहाँ इस एक्साम्प्ल में ptr++ पॉइंटर को arr[0] से arr[1] पर मूव करता है।
  • ptr += 2 इसे arr[1] से arr[3] पर मूव करता है।
  • C++ प्रोग्रामिंग में पॉइंटर अरिथमेटिक का यूज़ सामान्य रूप से ऐरे के साथ किया जाता है, जहाँ पॉइंटर वेरिएबल एक इटरेटर के जैसे काम करता है. जो ऐरे की मेमोरी लोकेशन से होकर मूव करता है।

Null Pointers Concept in C++.

C++ प्रोग्राम में नल पॉइंटर एक ऐसा यूजर डिफाइन पॉइंटर डाटा होता है, जो किसी वैलिड मेमोरी लोकेशन की ओर उसे पॉइंट नहीं करता है। नल पॉइंटर का यूज़ सामान्य रूप से यह इंडीकेट करने में किया जाता है कि पॉइंटर डाटा टाइप अभी इनिशियलाइज़ नहीं हुआ है, या किसी ऑब्जेक्ट की ओर पॉइंट न करने के लिए क्लियर आर्डर में सेट है।

C++ यूजर पॉइंटर डाटा को nullptr (C++11 और बाद के वर्जन में) या NULL (C++ के पुराने वर्जन में) के रूप में इनिशियलाइज़ कर सकते हैं।

Example of the Null Pointers concept.

#include <iostream>

int main() {

    int* ptr = nullptr;  // here pointer variable define as null pointer (for only C++11 and beyond version)

    if (ptr == nullptr) {

        std::cout << “Pointer value define as null.\n”;

    }

    return 0;

}

Explanation of the Null Pointers concept.

  • यहाँ इस एक्साम्प्ल में, ptr को nullptr पर डिफाइन किया गया है, और C++ यूजर इसे डीरेफरेंस करने की कोशिश करने से पहले चेक करते हैं कि यह nullptr वैल्यू भी है, या नहीं है। C++ प्रोग्राम में नल पॉइंटर को डीरेफ़रेंस करने से अनडिफ़ाइंड बिहेवियर जनरेट होता है. इस वजह से नल पॉइंटर डीरेफ़रेंस करने से पहले यहाँ उसे चेक करना ज़रूरी है कि पॉइंटर नल वैल्यू डिफाइन है, या नहीं है।

Pointers with Arrays Concept in C++.

जब C++ यूजर ऐरे वेरिएबल डाटा टाइप के साथ पॉइंटर्स डाटा को यूज़ करते हैं, तो पॉइंटर वेरिएबल डाटा वास्तव में ऐरे के पहले एलिमेंट का एक रेफ़रेंस होता है। C++ यूजर पॉइंटर अरिथमेटिक का यूज़ करके दूसरे पॉइंटर ऐरे एलिमेंट्स को एक्सेस और मैनेज कर सकते हैं।

Example of Pointers with Arrays.

#include <iostream>

int main() {

    int array[] = {66, 58, 78, 69, 79, 100, 130};

    int* ptr = array;  // here we define pointer to the first element of the array

    // here we access elements of array using pointer arithmetic method

    std::cout << “First array element is – ” << *ptr << std::endl;      // Result is – 66

    std::cout << “Second array element is – ” << *(ptr + 1) << std::endl; // Result is – 58

    std::cout << “Third array element is – ” << *(ptr + 2) << std::endl;  // Result is – 78

    std::cout << “Next array element is – ” << *(ptr + 6) << std::endl;  // Result is – 130

    return 0;

}

Explanation of Pointers with Arrays.

  • यहाँ इस एक्साम्प्ल में, ptr ऐरे के पहले एलिमेंट को इंडीकेट कर रहा है, और *(ptr + 1) दूसरे एलिमेंट को एक्सेस कर डिस्प्ले करता है, और इसी तरह नेक्स्ट ऐरे एलिमेंट को पॉइंट कर प्रीव्यू करता है।

Pointer to Pointer (Multi-Level Pointers) Concept in C++.

C++ प्रोग्रामिंग इसके यूजर के पास पॉइंटर्स टू पॉइंटर्स डाटा टाइप वेरिएबल डिफाइन हो सकते हैं. जो मौजूदा C++ प्रोग्राम में पॉइंटर्स के डायनामिक ऐरे या मल्टी-डायमेंशनल ऐरे के साथ काम करते समय अधिक यूज़फुल होते है।

Example of pointer to pointer (Multi-Level Pointers).

#include <iostream>

int main() {

    int test = 19;         // here we declare a simple test integer data type variable

    int* ptr = &test;     // here we declare a pointer to an integer data type variable

    int** ptr2 = &ptr;   // here we declare a pointer to pointer (pointer to ptr) data type variable

    std::cout << “Value of ordinary test variable is – ” << test << std::endl;  // Result is – 19

    std::cout << “Dereferencing ptr value is – ” << *ptr << std::endl;  // Result is – 19

    std::cout << “Dereferencing ptr2 value is – ” << **ptr2 << std::endl;  // Result is – 19

    return 0;

}

Explanation of pointer to pointer (Multi-Level Pointers).

  • यहाँ इस एक्साम्प्ल में, ptr2, ptr का पॉइंटर डाटा टाइप वेरिएबल है. जो test वेरिएबल का पॉइंटर है। ptr2 को दो बार डीरेफरेंस करके (**ptr2), हम test की वैल्यू को एक्सेस कर सकते हैं।

Leave a Reply