Pointer भी एक variable होता हैं जो की specific काम के लिए C programming में उपयोग में लाया जाता हैं ।
इससे पहले tutorial में हमने address operator (&) and indirection operator (*) के बारे में सीखा था जो की पोइंटर को समझने के लिए बहुत ही महत्त्वपूर्ण tutorial हें ।
इस C language के tutorial में हम यहाँ पर Pointers के बारे मे सीखेंगे और समझेंगे की pointer क्या हैं ? और किस लिए C programming में pointers का उपयोग किया जाता हैं ।
Pointers in C Programming | Hindi
Pointers विशेष प्रकार के variables होते हैं जिनका उपयोग value के बजाय address को स्टोर करने के लिए किया जाता हैं ।
साधारण हिन्दी भाषा में समझे तो pointer एक variable होता हैं जो किसी दूसरे variable का address store करने के लिए उपयोग में लाया जाता हैं ।
दूसरे शब्दो में कहे तो Pointer एक स्पेशल derived data type होता है जो किसी अन्य variable का address hold करता है ।
पिछले एक tutorial में हमने C data types के बारे समझा था वहाँ पर ही derived data types के बारे मेन सीखा था । Derive data type user defined होते हैं जिन्हे programmer खुद define करता हैं । Pointers variables अलग अलग data types के हो सकते हैं जैसे – (int, char, float, double, array, function) जिसे declare करना बहुत ही आसान होता हैं ।
जैसा की आप जानते ही होंगे की हर एक computer system का आर्किटैक्चर (architecture) अलग अलग होता हैं किसी का 32 bit तथा किसी का 64 bit होता हैं उसी के आधार पर pointer का size निर्भर करता हैं यह pointer के साथ साथ ही नही normal variable और उनके data type की memory limit भी सिस्टम architecture पर निर्भर करती हैं ।
32 bit architecture के हिसाब से pointer का size 4 byte और 64 bit architecture के हिसाब से pointer का size 8 byte होता हैं । pointer के size पर data type कोई असर नही डालता हैं परन्तु pointer जिस भी तरह का डाटा type का होता हैं उसी type के variable के address को point करता हैं । जैसे की pointer variable दूसरे variable का address hold करता हैं उसी के साथ साथ उस variable की value को भी pointer variable से access की जा सकती हैं ।
Declaration of the pointer in C programming –
जैसे की हमने C variables के tutorial में सीखा था किस किस तरह से C programming में एक normal variable को declare करते हैं उसी प्रकार C language में pointer variable को भी declare करना पड़ता हैं । Pointer variable को declare करने के लिए variable नाम से पहले asterisk symbol * का उयोग किया जाता हैं साथ ही साथ asterisk * से पहले pointer के data type को लिखा जाता हैं जिससे पता चलता हैं की pointer किस data type के variable का address को hold कर सकता हैं ।
Syntax-
Data_type *variable_name ;
उपर दिये गए syntax में data_type कुछ भी हो सकता हैं जैसे int, char, float, double, array, function और variable_name भी कुछ भी हो सकता हैं जो की user define होता हैं अब यदि हमे इसे normal variable को pointer variable मे बदलना हैं तो variable_name से पहले asterisk (*) symbol दिया जाता हैं जो की pointer की पहचान हैं ।
C programming में Pointer को कुछ इस प्रकार declare किया जता हैं ।
Int *ptr;
उपर दिये गए declaration में एक ptr नाम का pointer हैं जो की integer data टाइप का हैं । इसका मतलब हैं की यह पोइंटर केवल integer type के variables के address को ही hold करेगा ।
C programming मे Pointer को इस प्रकार भी declare कर सकते हैं जैसे –
Int *ptr1;
Int * Ptr2;
पहले वाले pointer declaration में asterisk symbol *ptr1 नामक pointer से मिला हुआ हैं इनके बीच कोई space नही हैं और दूसरे वाले declaration में * ptr2 एक स्पेस हैं इसका मतलब यह हैं की आप asterisk symbol (*) और pointer name के बीच space दे भी सकते हैं और नही भी ।
यदि हमे pointer और normal variable को एक साथ declare करना हैं समान data टाइप के साथ तो कुछ इस प्रकार declare कर सकते हैं ।
Int* ptr1 ,c;
उपर दिये गए उदाहरण में ptr1 एक पोइंटर हैं जो की integer data type का हैं और normal variable c हैं जो भी integer data type का ही हैं । इस तरह से हमने pointer variable और normal variable को एक साथ declare करना सीखा ।
Assigning address to pointer | Initializing a pointer in C language
Pointer में किसी भी variable का address hold करने की क्षमता होती हैं परन्तु variable भी समान डाटा type का ही होना चाइए ।
int* ptr, x;
x = 9;
ptr = &x;
उपर दिये गए उदाहरण में integer type pointer variable और नॉर्मल variable को declare किया । यहाँ पर ptr एक pointer variable हैं और x एक normal variable हैं । उसके बाद normal variable को 9 वैल्यू assign की हैं । अब हम आसानी से pointer को initialize कर सकते हैं क्यूकी pointer initialization के लिए normal variable की जरूरत पड़ती हैं ।
जैसे की & operator के बारे में पता होगा जो की variable का memory address प्राप्त करने के के लिए उपयोग में लाया जाता हैं इसलिए इसे address operator भी कहते हैं । आखिर में variable x का address pointer को assign किया हैं या कह सकते है । pointer ptr ने variable x का memory address hold कर लिया हैं तो यहाँ पर x एक दूसरा variable हैं ।
चलिये एक उदाहरण से समझते हैं –
Example of the pointer in C programming -
#include<stdio.h>
void main()
{
int* ptr,a;
a = 10;
ptr = &a;
printf("Value of a = %d , Assigned address of a to p = %d",a, ptr);
}
Output -
Value of a = 10 , Assigned address of a to ptr = 148356672
उपर दिये गए उदाहरण run करने पर address 148356672 मिलता हैं जो की a variable का एड्रैस जो की ptr pointer में store किया गया हैं । Variable का address प्राप्त करने के लिए address & operator का उपयोग किया गया हैं । यह address कुछ ओर भी display हो सकता हैं क्यूकी variable address system पर निर्भर करता हैं जिसका programmer को पता नही होता बस & address operator की मदत से address प्राप्त किया जा सकता हैं ।
चलिये एक ओर उदाहरण से समझते हैं जिसमे हम जो address, pointer को assign किया था उसी address से उस variable की value को प्राप्त करना सीखेंगे की उस एड्रैस पर क्या वैल्यू स्टोर हैं ।
साधारण Hindi भाषा में समझे तो अभी तक हमने सिर्फ variable के address जहां पर variable की value store हैं उसका address pointer को assign किया हैं या कह सकते हैं pointer में store किया हैं अब उस assign किए गए address पर क्या store यानि की क्या वैल्यू उस memory एड्रैस पर store हैं वह वैल्यू भी pointer के द्वारा access कर सकते हैं ।
#include<stdio.h>
void main()
{
int* ptr,a;
a = 10;
ptr = &a;
printf("Value of a = %d , Address value by pointer = %d",a, *ptr);
}
Output -
Value of a = 10 , Address value by pointer = 10
पिछले tutorial में हमने address operator (&) और indirection ऑपरेटर (*) के बारे में सीखा था जहां पर & operator के द्वारा variable का address प्राप्त करना बताया था और indirection operator * के द्वारा उस address से वैल्यू को प्राप्त करना बताया गया था ।
उपर दिये गए उदाहरण में कुछ ऐसा ही हुआ हैं जहां पर a variable का address ptr को assign किया हैं और उसी address से *ptr (pointer variable से पहले asterisk ) से उस address की value प्राप्त की हैं ।
एक ओर उदाहरण से समझते हैं जिसमे आखिर (last) में variable की value को बदलेंगे ।
#include<stdio.h>
void main()
{
int* ptr,a;
a = 10;
ptr = &a;
a=4;
printf("Value of a = %d , Address value by pointer = %d",a, *ptr);
}
Output -
Value of a = 4 , Address value by pointer = 4
उपर दिये गए उदाहरण में देख सकते हैं की जब variable की वैल्यू change होती हैं तो address के द्वारा प्राप्त वैल्यू भी वो ही होगी (जो वैल्यू अभी assign की हैं ) ।
क्यूकी यहाँ पर उस address पर स्टोर वैल्यू को बदल दिया गाय हाँ तो ptr से value भी वो ही मिलेगी ।
इस तरह से C programming मे pointer का उपयोग किया जाता हैं ।
What are the advantages of the pointer in C programming?
Pointer को C programming में उपयोग करने के कई फायदे हैं जो की निम्नलिख्त हैं –
1. Pointer का उपयोग C programming में करने से processing speed काफी अच्छी होती हैं क्यूकी डाटा manipulation address के द्वारा होता हैं ।
2. File handling में भी pointer काफी फायदेमंद होता हैं ।
3. Pointer का उपयोग करने से memory save होती हैं ।
4. किसी भी memory address को बहुत अच्छे से access करने में मदत करता हैं ।
5. Dynamic memory allocation में pointer बहुत ही फायदेमंद होता हैं । पोइंटर का उपयोग dynamic memory allocation के लिए किया जाता हैं ।
What are the disadvantages of the pointer in the C language?
Pointer के फायदे होने के साथ साथ इसके नुकसान भी हैं जो निम्नलिख्त हैं ।
1. Pointer को समझना थोड़ा complex होता हैं जो program pointer से बना होता हैं उसको समझना थोड़ा कठिन होता हैं ।
2. Pointer को कोई भी वैल्यू assign न करने पर यह garbage value return करता है, इसलिए NULL Pointer का उपयोग करना पड़ता है।
3. Normal variable की अपेक्षा pointer धीमे होता हैं ।
Null Pointer In C Language –
Null pointer वह pointer होता हैं जिसमे कोई भी वैल्यू assign नही की जाती हैं । Null pointer किसी भी variable का address को point नही करता हैं । इसे प्रिंट करने पर garbage value print कर सकता हैं इसलिए हमेशा Null वैल्यू assign की जाती हैं ।
Int *p=NULL;
उपर दिये गए उदाहरण में p नामक pointer में NULL value assign की गयी हैं जिस से p pointer किसी भी variable के address को पॉइंट नही करता हैं ।
इस तरह से C programming में pointer का उपयोग किया जाता हैं ।
Recommended Posts:-