हेल्लो दोस्तों आज के इस पोस्ट में आपको c++ pointer in hindi के बारे में बताया गया है की क्या होता है कैसे काम करता है तो चलिए शुरू करते है
Contents
C++ pointer का परिचय
- pointers के बारे में आप c language में पहले ही पढ़ चुके है c++ में भी pointer को उसी प्रकार प्रयोग किया जाता है pointers variables में आप किसी भी normal variable का address को स्टोर करते है
- इस address के द्वारा pointer variable उस original variable की वैल्यू को point करते है pointer कभी भी वैल्यू को स्टोर नहीं करते है बल्कि pointer variables के address के माध्यम से उस वैल्यू को point करते है
- आप सड़क पर खड़े थे जो किसी ने आप से आकार पूछा भाई साहब विनय कहा रहता है आपके विनय के घर की तरह इशारा कर दिया इसी प्रकार pointer के variable को सिर्फ इशारा करते है की particular की वैल्यू किस location पर stored है
- pointer के द्वारा आप मेमोरी में स्टोर की गयी वैल्यू को प्रोग्राम में कई जगह से point कर सकते है pointers के द्वारा variables को values के साथ ऑपरेशन भी परफॉर्म किये जा सकते है जैसे की variables को print करना आदि
- हलाकि आप वैल्यू variable names से access कर सकते है फिर भी आपको pointer के रूप में एक alternate approach को provide की गयी है तो आएये इसे एक example के माध्यम से समझने का प्रयास करते है
मान लीजिये की आपने एक int type का Age variable को create किये है
int age;
जब आप इस variable को किसी वैल्यू के साथ initialize करेंगे तो compiler के मेमोरी में variable के नाम से एक मेमोरी location allot करेगा
int age=60;
उपर दिए गए example में Age उस मेमोरी location का नाम है और 60 उस मेमोरी location में स्टोर की गयी वैल्यू होती है इस मेमोरी location का एक address भी होगा जो की hexadecimal form में होता है pointers इसी address को स्टोर करते है और इस address के माध्यम से ही वे original variable की वैल्यू को point करती है
एक pointer से आप किसी दूसरी pointer variable को भी point कर सकते है c++ में arrays के भी pointers को create कर सकते है objects के लिए ही pointer को create करने की ability भी c++ आपको provide करती है pointer को function के साथ भी प्रयोग किया जाता है
तो आएये अब हम देखते है की c++ में आप किस प्रकार के pointer को create और प्रयोग कर सकते है
declaring & initializing C++ pointer
pointer variable को create करने के लिए आप asterisk (*) ऑपरेटर का प्रयोग करते है जिसे type का original को create किया जाता है C++ में आप primitive types से लेकर create कर सकते है C++ में pointer में create करने का general syntax आपको निचे दिया जा रहा है
data type *pointer-variable-name;
जैसा की आप उपर दिए गए syntax में देख सकते है की सबसे पहले डाटा type को डिफाइन किया गया है इसके बाद आप asterisk(*) variable के साथ pointer variable का नाम को डिक्लेअर किया गया है जिसका आपको example निचे दिया जा रहा है
int age=5; //original variable
int *pntr; //pointer variable
pointer variable को आप address of (&) ऑपरेटर के साथ initialize करते है जिसका आपको इसका syntax निचे दिया जा रहा है
pointer-variable=&original-variable;
जिसको आप निचे example के माध्यम से बताया जा रहा है
pntr=&age;
उपर दिए गए example में आप age variable का address को ptr pointer के variable को assign किया गया है
example
#include<iostream>
Using namespace std;
Int main()
{
Int age=50;
Int *ptr;
Ptr=&age;
Cout<<”value of age variable using normal syntax:”<<age<<endl;
Cout<<”address of age variable:”<<ptr<<endl;
Cout<<”value of age variable using pointer variable:”<<*ptr<<endl;
}
उपर दिए गए example में वैल्यू at(*) ऑपरेटर के साथ pointer variable का प्रयोग किया जाता है ये ऑपरेटर किसी address पर स्टोर की गयी वालू को access करने के लिए प्रयोग किया जाता है उपर दिए गए प्रोग्राम में आपको निचे दिया गया आउटपुट generate होता है
Value of age variable using normal syntax:50
Address of age variable:oxbff28fc0
Value of age variable using pointer variable:50
Pointer to ponter
जैसा की आप पहले से बताया गया एक pointer से दुसरे pointer के variable को भी point किया जा सकता है इसके लिए आप double asterisk(**) operator का प्रयोग किया जाता है जिसक आपको इसका syntax आपको निचे दिया जा रहा है
data type **pointer-name;
मान लीजिये की पहले उपर create किये गए ptr के variable के लिए ही एक pointer को create करना चाहते है तो ऐसा आप इस प्रकार से कर सकते है
int **ppntr
इस pointer variable को आप इस प्रकार से initialize करेगे
ppntr=ptr; pointer to array
pointer variable के द्वारा आप array को भी point कर सकते है मान लीजिये की आपने एक num नाम से कोई integer array को create किये है इसमे आपने values को भी स्टोर की है
int num[5]={1,2,3,4,5};
इस array के लिए आप pointer को इस प्रकार से create कर सकते है
int *arrpntr;
इस pointer को आप इस प्रकार initialize किया जायेगा
arrpntr=num;
arrpntr इस समय num array के first element का address को hold करता है आप चाहे तो arrpntr variable को loop के द्वारा implement करते हुए भी वैल्यू at(*) ऑपरेटर के द्वारा आप array के सभी element को print भी कर सकते है जिसका आपको example निचे दिया जा रहा है
for(int i=0;i<5;i++)
{
cout<<”value at first<<i<<”is:”<<arrpntr+i;
}
pointer to object
जैसे की आपको पहले से ही बताया गया है की आप user को defined types(class objects) के लिए भी pointer को create कर सकते है किसी भी class के type का pointer को create करके आप उससे किसी normal object को point कर सकते है इस pointer के द्वारा आप class के members को access कर सकते है तो आएये हम इसे एक example के द्वारा समझने का प्रयास करते है
Class item
{
Private:
Int id=5;
Int price=1000;
Public:
Void display(void)
{
Cout<<”item id is”<<id<<and price is :”<<price;
}
};
Int main()
{
Item obj;
Item *obpntr;
Obpntr=&obj;
Obpntr->display();
उपर दिए गए example में आप item नाम से एक class को create की गयी है main function में इस class का एक object और एक pointer के variable को create किया गया है इसके बाद आप object के address को address of(&) operator के द्वारा pointer के variable को assign किया गया है इसके बाद आप pointer variable के माध्यम से class को display() function को एक्सीक्यूट करवाया गया है ये program आपको निचे दिए गए आउटपुट को generate करता है
item id is 5 and price is 1000
pointer to function
आप function के लिए भी pointer को create कर सकते है और उन्हें execute भी कर सकते है जिसका आपको syntax निचे generate होता है
data-type(*pointer-name)(parameters);
मान लीजिये की आपने एक addition का function को create किया हुए है
int add(int a,int b)
{
return a+b;
}
उपर दिए गए function के लिए pointer को इस प्रकार से create किया जायेगा
int(*funpntr)(int,int);
इस statement के द्वारा आप एक function को pointer type को create किया गया है इस type का pointer variable को create किया गया है इस type का pointer variable को create करके आप उसे add function का address को assign करते है जिसका आपको इसका example निचे दिया जा रहा है
Int main()
{
Int(*funpntr)(int,int);
Funpntr=&add;
Cout<<”Addition of 2 & 3 is “<<funpntr(2,3);
Return 0;
}
इसे एक complete example के रूप में निचे दिया जा रहा है
#include<iostream>
Using namespace std;
Int add(int a,int b)
{
Return a+b;
}
Int main()
{
Int(*funpntr)(int,int);
Funpntr=&add;
Cout<<”Addition of 2 &3 is <<funpntr(2,3);
Return 0;
}
उपर दिए गए प्रोग्राम में आपको इसका निचे दिया गया आउटपुट को generate होता है
Addition of 2 & 3 is :5
this pointer
this एक pointer होता है जो हर class के साथ ही automatically attached होता है इस pointer को current class के सन्दर्भ में प्रयोग किए जाता है इसे सिर्फ class के अन्दर ही प्रयोग किया जा सकता है
मान लीजिये की आप किसी reason से class के किसी function को class में ही execute करवाना चाहते हो तो लेकिन object के बिना class के किसी भी function को एक्सीक्यूट करना possible नहीं है तो ऐसी सिचुएशन में आप this pointer का प्रयोग कर सकते है और function को एक्सीक्यूट भी करवा सकते है तो आएये हम इसे example के माध्यम से समझते है
#include<iostream>
Using namespace std;
Class thisdemo
{
Public:
Void byebye(void)
{
Cout<<”bye bye! Take care!”;
}
Void welcome(void)
{
Cout<<”welcome into this program . how are you feeling in here..”<<endl;
This->byebye(); //calling
Byebye()function using this pointer
}
};
Int main()
{
Thisdemo obj;
Obj.welcome();
Return 0;
}
उपर दिए गए example में जैसे की आप देख सकते है की thisdemo class के object से सिर्फ welcome() function को कॉल किया गया है welcome function में this pointer के द्वारा byebye() function को कॉल किया गया है जब आप welcome()function को कॉल करते है तो byebye() function भी कॉल हो जाती है जब भी आपको बिना object के class में members को access करने की आवश्यकता हो तो आप this pointer का प्रयोग करेगे ये प्रोग्राम आपको निचे दिया गया आउटपुट को generate होगा
welcome into this program how are you
feeling in here….
Bye bye!take care!
reference-https://www.tutorialspoint.com/cplusplus/cpp_pointers.htm
निवेदन-अगर आपको यह आर्टिकल(c++ pointer in hindi) अच्छा लगा हो तो आप इस पोस्ट को अपने दोस्तों के साथ जरुर शेयर(c++ pointer in hindi) करे और आपको जिस टॉपिक(c++ pointer in hindi) पर आपको पढना या नोट्स चाहिए तो हमें जरुर कमेंट करे आपका कमेंट्स हमारे लिए बहु मूल्य है धन्यवाद