C++ में Pointers, Pointer to an objects, Pointer to an Array की संपूर्ण जानकारी

What is Pointer in C++ in Hindi

एक Pointer अन्य Data items या Variable के Memory address को रखता है या वास्तविक  Data को स्टोर नहीं करता लेकिन Data जिस स्थान पर स्टोर है उसके Location या Address को स्टोर करता है

Pointer का प्रयोग करके आप सीधे ही Data को Access और Manipulate कर सकते हैं उदाहरण के लिए आप एक Variable के लिए Pointer का निर्माण करते हैं

Pointer को अप्रत्यक्ष रूप से Manipulate(हेरफेर) करके आप Variable की Value को बदल सकते हैं
Pointer शक्तिशाली है लेकिन उनका  उपयोग करना मुश्किल हो सकता है

क्योंकि उन्हें सावधानी पूर्वक प्रबंधन की आवश्यकता होती है यदि ठीक से उसे handle नहीं किया जाए तो वह मेमोरी leak या segmentation जैसे faults पैदा कर सकते हैं जो आपके प्रोग्राम को Crash कर सकते हैं

Pointer, Dynamic memory allocation और कुशलतापूर्वक Data को Manipulate करने के लिए शक्तिशाली Tools है

C++ में Pointer को Declare और Intialize करना 

C++ में एक Variable को एक Pointer type में Declare करते हुए, Pointer का निर्माण कर सकते हैं

Syntax:
 //Declaration of a pointer
dataType *ptr;
// Intialization of a pointer
int *ptr = & variable;

Example:
int x = 15;
int* ptr;//Declaration of a pointer
ptr = &x; // Intialization of a pointer

ऊपर के Example में हमने एक Pointer को Declare और Intialize किया है इसे निम्न प्रकार से समझते हैं

1) हम सबसे पहले एक Integer variable 'x' Declare करते है और उसे '10' Value assign करते है

2) उसके बाद हम int* ptr; का Use करके एक Integer pointer,  declare करते है

3) Variable 'x' के Address को '&' Address operator का Use करके 'ptr' Pointer को Assign किया जाता है
Program for Pointer

#include<iostream> using namespace std; int main()

{ int myNum = 10; //Declaration of a pointer variable int* ptr; //Assigning a variable's address to a pointer 'ptr' ptr = &myNum; //Printing everything cout << "Value of myNum: " << myNum << endl; cout << "Address of myNum: " << &myNum << endl; cout << "Value at ptr: " << ptr << endl; cout << "Value at *ptr: " << *ptr << endl; return 0; }

Output:
Value of myNum: 10
Address of myNum: 0x7ffc8d5a5dac
Value at ptr: 0x7ffc8d5a5dac
Value at *ptr: 10

Types of Pointer in C++ in Hindi

C++ में Pointer कैसे Use होते है और वह क्या Point करता है उसके आधार पर यह निम्न प्रकार के होते है
1) Null pointer
2) Dangling pointer
3) Void pointer 
4) Wild pointer
5) Invalid pointer

Pointer के प्रकारों की संपूर्ण जानकारी के लिए यहां पर क्लिक करें

Pointer to object in C++ in hindi

जिस तरह वेरिएबल के अन्य प्रकारों के 
Pointers होते हैं उसी प्रकार हम Object के Pointer भी बना सकते हैं Pointer किसी Class द्वारा बनाए गए Object को निर्देशित करता है 

Object के Pointer किसी Class के Object को Point करने वाले विशेष Pointers होते हैं

दूसरे शब्दों में कहें तो किसी Object के लिए Pointer एक variable होता है जो सीधे किसी Object की value की वजह उसके Memory address को संग्रहित करता है

यह Object के Members तक अप्रत्यक्ष Access की अनुमति देता है और Dynamic memory management की सुविधा देता है

जब आप C++ में Object का निर्माण करते हैं तो यह मेमोरी में Store होता है और प्रत्येक Object का एक Unique memory address होता है

किसी Object का Pointer इस Memory address को Store करता है जिसका प्रयोग करके आप अप्रत्यक्ष रूप से Object में हेरफेर कर सकते हैं।

Object pointer को Declare करना
Class Name और *(Asterisk) चिन्ह के बाद एक Object pointer का नाम देकर अन्य Pointer की तरह ही Object pointer को निम्न प्रकार से Declare किए जाते हैं।

Syntax:
class-name *object-pointerName;

ऊपर Syntax में class-name पहले से Defined Class का नाम है और  *(Asterisk) एक चिन्ह है जो कंपाइलर को अन्य दूसरे Variable तथा Pointer variable के मध्य अंतर स्पष्ट करता है

Example:
मान लीजिए की Employee एक Class हैं और आप इस Class का Object pointer myobj_ptr बनाना चाहते हैं बनाना चाहते हैं अतः इससे निम्न प्रकार से बना सकते हैं

Employee *myobj_ptr;
Pointer को किसी विशिष्ट emp object की ओर Point करने के लिए आप address -of -operator (&) का Use करते हैं
Employee emp;
*myobj_ptr = &emp;

एक बार जब Pointer Object को Point करें, तो आप इसका उपयोग Object के साथ काम करने के लिए कर सकते हैं जैसे इसके functions को Call करना या इसका Data बदलना

Object pointer का का उपयोग करके Class members को Access करने के लिए Dot operator(.) के बजाय Arrow operator(->) का Use किया जाता है 
जैसे हम Object pointer myobj_ptr से get_data और display_data() member functions को निम्न प्रकार से Access कर सकते हैं

myobj_ptr->get_data();
myobj_ptr->display_data();

C++ में Object के pointer महत्वपूर्ण है क्योंकि वे Memory को manage करने में मदद करते हैं और हमें लचीले तरीकों से Objects के साथ काम करने की अनुमति देते हैं 

लेकिन उन गलतियों से बचने के लिए उन्हें सावधानी पूर्वक संभालना महत्वपूर्ण है जो हमारे Programs को गड़बड़ा सकती है
Program for Pointer to an Object
#include<iostream>
#include<string>
using namespace std; 
class Book
{
public:
    int bookID;
    string author;
    
    void getData()
     {
      cout<<"Enter Book ID: "<<endl;
       cin>>bookID;
      cout<<"Enter Author's name: " <<endl;
       cin>>author;
      }
    void bookDetails() 
      {
     cout << "Book ID is: " << bookID << endl;
     cout << "Author's name is: " << author << endl;
      }
};
int main() {
    Book obj1;
 Book *myobj_ptr = &obj1;
cout<<"Calling member functions using object pointer and (->) operator:"<<endl;
myobj_ptr->getData();
myobj_ptr->bookDetails();
    return 0;
}
 
Output:
Calling member functions using object pointer and (->) operator:
Enter Book ID: 
10
Enter Author's name: 
Rohit Singh
Book ID is: 10
Author's name is: Rohit Singh

Pointer to an array in C++ in hindi

C++ में किसी Array का Pointer एक Variable है जो किसी Array के पहले Elements का Memory address को रखता हैै

आप इस Pointer का उपयोग Array के Elements को Access करने और उसके Data में हेरफेर करने के लिए कर सकते हैं

उदाहरण के लिए यदि आपके पास myArray नामक एक Array है तो इस Array का एक Pointer पहले Element अर्थात myArray[0] को Point करेगा
इस Pointer को Array के माध्यम से Traverse करने के लिए घटाया या बढ़ाया जा सकता है

यह C++ में Array उसके साथ कुशलतापूर्वक कार्य करने के लिए एक उपयोगी Tools है

Program for Pointer to an Array
#include<iostream>
using namespace std;
int main()
 {
    int myArr[5] = {23, 10, 40, 22, 34};  // Initialize array
    int* ptr = myArr;   // Pointer to the array

    // Print array elements using pointer
    for (int i = 0; i < 5; i++) 
   {
        cout << *(ptr + i) << " ";
    }
    cout << endl;
    return 0;
}
Output:
23 10 40 22 34  
Explanation:
ऊपर के प्रोग्राम में एक Integer array 'myArr' नाम से, 5 elements के साथ declare किया गया है और एक Pointer 'ptr' जो Array के पहले Element को Point करता है, Initialize किया गया है

इसके बाद यह प्रत्येक Element को Access करने के लिए Pointer arithemetic और dereferencing का उपयोग करके Array element पर पुनरावृति करने के लिए एक loop का उपयोग करता है 

यह Pointer का Use करके Array के Elements को Print करता है

Differences between Array and Pointer in Hindi

1) 
Array एक ही प्रकार के Data type के Elements को Store करने के लिए Contiguous memory location का Use करते है 
Pointers variable है जो Memory address को Store करता है

2)
Array का size, fixed होता है जो Compile- time मे निर्धारित होता है
Pointer के साथ कोई आकर जुड़ा नही होता

3)
Array को Declare करते समय Values की list के साथ Intialize किया जाता है
Pointer को आमतौर पर स्पष्ट रूप से एक Memory address निर्दिष्ट करने की आवश्यकता होती है

4)
Array के Elements को Square bracket[] का Use करके Access किया जाता है
Pointer, Elements को Access करने के लिए देते Dereferencing (*) और Pointer arithemetic (+,-) का Use करते है

5)
Array में 'sizeof ' Operator का Use करके पूरे Array के Size को Bytes में Return करता है
Pointer के लिए, यह Pointer का Size ही Return करता है

6)
Array के Declaration के बाद उसकी Size को नही बदल सकते
Pointers को विभिन्न Memory locations को Point करने के लिए बनाया गया है जो Dynamic memory allocation और deallocation की
अनुमति देता है

7)
Array Arithmetic Operators को Support करता है
Pointer Arithmetic Operators जैसे Addition, Substraction को Support नही करता है

8)
Array अपने Elements के बारे में Type Information को रखता है
Pointer स्वाभाविक रूप से Type Information को नहीं रखता है

 Related Posts

> C++ क्या है? उसके इतिहास, गुण, उपयोग, फायदे और नुकसान 

> Basic structure of C++ Program 

> C++ में Tokens क्या है? और उसके प्रकार

> C++ Variables क्या है?, उसके प्रकार, उसे कैसे Declare, Define करते हैं

> C++ में Constants क्या है? उसके प्रकारों की संपूर्ण जानकारी

> C++ में Basic Input और Output (cin,cout,cerr) की जानकारी

> Data type in C++ की संपूर्ण जानकारी 

> C+ में Operators और उसके प्रकार जानें Practical सहित 

> C++ में Conditional और उसके प्रकारों को जानें Practical सहित 

> C++ में Looping statements और उसके प्रकार Practical सहित 

> C++ में Jump Statements और उसके प्रकारों की संपूर्ण जानकारी Practical सहित

> C++ में Array क्या है? और उसके प्रकारों की जानकारी Practical सहित

> C++ में Function क्या है उसके प्रकार, उपयोग प्रोग्राम सहित 

> C++ में Structure क्या है Practical सहित

> OOPs Concepts in C++ in Hindi- C++ में OOPs के बारे में

> Oops के फायदे और नुकसान की जानकारी 

> OOP और POP के बीच अंतर 

> C++ में Class और Object की सम्पूर्ण जनकारी

> C++ में Array of Objects क्या है? 

C++ में Passing objects क्या है

> C++ में Reference और Type Casting की संपूर्ण जानकारी

> C++ में Access specifier की संपूर्ण जानकारी 

> C++ में Static Data Members और Member Functions के बारे में Practical सहित 

> C++ में Memory allocation और Memory management operators (new और delete) Practical सहित 

> Friend Function in C++ in Hindi 

> Friend Class in C++ in Hindi Practical सहित 

> Inline function in C++ in Hindi 

> Function Overloading in C++ in Hindi Practical सहित 

> Operator Overloading in C++ in Hindi Practical सहित 

> C++ में Constructor क्या है और उसके प्रकारों की संपूर्ण जानकारी

> C++ में Destructor क्या है ?उसकी संपूर्ण जानकारी

> C++ मे Inheritance क्या है उसके प्रकारों को जानें प्रोग्राम सहित

> C++ में Polymorphism क्या है? और उसके प्रकारों को जानें

> C++ में Virtual function की संपूर्ण जानकारी

> C++ में File handling की संपूर्ण जानकारी 

> C++ में Exception handling  की संपूर्ण जानकारी