https://www.rakeshmgs.in/search/label/Template
https://www.rakeshmgs.in

Hindi Notes

RakeshMgs

Pointers in C Programming in Hindi

शुक्रवार, मार्च 19, 2021

 

Introduction to Pointers

Pointers वो variables होते है जो दूसरे variables के address को store करते है। जैसा की आपको पता है हर variable का memory में एक unique address होता है। ये address hexadecimal form में होता है। इसलिए इस address को आप किसी normal variable में store नहीं कर सकते है।

Address in C

किसी भी variable के address को store करवाने के लिए आप pointer variable create करते है। मान लीजिये आपने एक variable create किया है। इस variable का नाम Age है और आपने इसमें 55 value assign करवायी है।

इस variable की memory में location (address) 21F है। अब यदि आप चाहे तो इस address को एक pointer variable में store करवा सकते है।

आइए किसी भी variable के memory address को देखने के लिए एक छोटा सा program लिखें जिसे हम अपने program में define करते हैं।

	
	
#include<stdio.h> void main() { int var = 7; printf ("Value of the variable var is: %d\n", var); printf ("Memory address of the variable var is: %x\n", &var); }

output

Value of the variable var is: 7
Memory address of the variable var is: bcc7a00

आपने फ़ंक्शन scanf() में भी देखा होगा, हम किसी भी variable var के लिए user इनपुट लेने के लिए &var उल्लेख करते हैं।

	
	
scanf("%d", &var);

इसका उपयोग variable var के address पर यूजर इनपुटेड वैल्यू को स्टोर करने के लिए किया जाता है।.

Concept of Pointers

जब भी किसी प्रोग्राम में एक वैरिएबल declare किया जाता है, तो सिस्टम एक लोकेशन allocates करता है यानी मेमोरी में उस वैरिएबल के लिए एक address आवंटित किया जाता है, ताकि निर्धारित वैल्यू को होल्ड किया जा सके। इस location का अपना address नंबर है, जिसे हमने अभी ऊपर देखा था।

आइए मान लेते हैं कि सिस्टम ने variable के लिए मेमोरी लोकेशन 80F allocate किया है।

int a = 10;


हम variable नाम का उपयोग करके या इसके address 80F का उपयोग करके value 10 तक पहुँच सकते हैं।

सवाल यह है कि हम एक variable का उपयोग कैसे कर सकते हैं यह पता है? चूँकि मेमोरी एड्रेस भी सिर्फ नंबर होते हैं, उन्हें किसी दूसरे वेरिएबल में भी असाइन किया जा सकता है। वे variable जिनका उपयोग मेमोरी address को रखने के लिए किया जाता है, पॉइंटर चर कहलाते हैं।

एक पॉइंटर वैरिएबल इसलिए कुछ भी नहीं है बल्कि एक वैरिएबल है जो किसी अन्य वैरिएबल का पता रखता है। और एक पॉइंटर वैरिएबल का मान दूसरे मेमोरी लोकेशन में स्टोर हो जाता है।


Advantages of Using Pointers

  1. Pointers की मदद से आप dynamically memory allocate कर सकते है।
  2. Pointers की मदद से आप data structures (linked-list, stack, queue) create कर सकते है।
  3. Pointers use करने से program का execution time कम हो जाता है।
  4. Pointers की मदद से आप functions से एक से अधिक values return कर सकते है।
  5. Pointers की मदद से argument passing के दौरान आप variable की copy के बजाय original variable पर काम कर सकते है।
  6. Pointers के द्वारा large data को search और sort करना बहुत आसान होता है

यदि pointers को properly use ना किया जाये तो इसके कुछ dis-advantages होते है।

Disadvantages of Using Pointers

  1. कई बार pointers की वजह से program में ऐसी error आ जाती है जिसे diagnose करना बहुत difficult होता है।
  2. Pointers की वजह से memory में leaks create हो जाते है।
  3. यदि run time के दौरान pointers को hold करने के लिए extra memory ना हो तो program crash हो जाता है।
  4. Pointers की मदद से restricted memory को access किया जा सकता है।