void pointer का प्रयोग किसी different data type के variable के address को store करने के लिए किया जाता है।
चलिए इसे विस्तार से समझते हैं-
जैसा कि हम जानते हैं, एक pointer variable उसी प्रकार के variable के address को store कर सकता है, जिस type का pointer -variable declare किया गया हो यानी int
type pointer-variable केवल int
type variable के address को store करेगा,
int x = 6;
int *ptr;
ptr = &x; // right
क्योंकि x और ptr, दोनों int
type variable हैं अर्थात दोनों का data type same है ।
दूसरे शब्दों में, हम int
variable के address को float
या अन्य data-type के variable में store नहीं कर सकते हैं, जैसे-
int x = 6;
float *ptr;
ptr = &x; // wrong
क्योंकि यहाँ पर *ptr float type variable है जबकि x, एक int
type variable है। लेकिन void
pointer का प्रयोग करके हम C ++ में different data -type के address को एक ही प्रकार के data -type (void ) में store कर सकते हैं।
declaration of void pointer
void pointer declaration का syntax नीचे दिया गया है-
SYNTAX
void *variable-name:
void pointer useful है, आप इस तरह से समझ सकते हैं, जैसे हमने 3 अलग-अलग प्रकार के variable declare किए हैं-
int x;
float y;
char z;
इसलिए, बिना void
pointer के इन 3 variables के address को store करने के लिए, हमें अलग से उन्ही data type के 3 pointer type variable declare करने होंगे-
int *ptr1;
float *ptr2;
char *ptr3;
फिर, address इस प्रकार store होगा-
ptr1 = &x; // for int data type
ptr2 = &y; // for float data type
ptr3 = &z; // for char data type
void pointer का प्रयोग करके , हमें 3 different variables के लिए केवल single void type pointer -variable declare करना होता है –
int x;
float y;
char z;
void *ptr
अब, हम int
x, float
y और char
z (different types of variables ) के address को एक pointer-variable *ptr में store कर सकते हैं-
ptr = &x; // for int data type
cout<<ptr
ptr = &y; // for float data type
cout<<ptr;
ptr = &z; // for char data type
cout<<ptr;
क्योंकि वह void
किसी data -type से संबंधित नहीं है, इसलिए यहां पर हम address को access करने के लिए implicit call करते हैं –
*(data-type *) pointer-variable;
इसका उदाहरण नीचे दिया गया है –
access variable address using void pointer
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int x=3;
float y=1.2;
char z='c';
void *ptr; //void pointer declaration
// for int type variable
ptr = &x;
cout<<"x: "<<*(int *)ptr<<" "<<ptr;
cout<<endl;
//for float type variable
ptr = &y;
cout<<"y: "<<*(float *)ptr<<" "<<ptr;
cout<<endl;
//for char type variable
ptr = &z;
cout<<"z: "<<*(char *)ptr<<" "<<ptr;
cout<<endl;
getch();
}
OUTPUT
x: 3 0x8f41fff4
y: 1.2 0x8f41fff0
z: c 0x8f41ffef
more about pointer
- Arrays of Pointer in C++
- Pointer with Structure in C++
- Pointer to pointer in C++
previous- Pointer in C++
next- memory allocation in C++