C language में डाटा को process करने के लिए data मेमोरी मे स्टोर होता हैं अब जहां पर data स्टोर होता हैं उस area के नाम को variable कहते हैं । variables programming मे data को प्रोसैस करने data मे बदलाव करने (data manipulation) के लिए बनाए जाते हैं जो की memory में स्टोर होते हैं तो उनका कुछ address भी होता हैं । एक tutorial में हमने variables के बारे मे सीखा था ।
इस tutorial में हम C programming में address operator (& ) और indirection operator (*) के बारे में सीखेंगे ओर समझेंगे की C language में इन operators का उपयोग क्या होता हैं ।
Address Operator ampersand (&) in C programming | Hindi –
Variable वाले tutorial हमने variable को declare करना सीखा था । जैसे –
int a, b, c;
char c, ch;
float f;
double, balance;
Variable को declare करने पर या तो पता चल जाता हैं की variable किसी data टाइप का हैं मतलब की किस type का डाटा memory मे स्टोर होने वाला हैं। दूसरा या पता चल जाता हैं की data की limit कितनी होती हैं क्यूकी हम data types में समझ चुके हैं की हर एक data type की कितनी range (Memory Limit) होती हैं । तीसरा variable का नाम ये चिजे तो पता चल जाती हैं जब हम कोई variable declare करते हैं परन्तु हमे memory address का पता नही चलता हैं की यह variable किस memory के किस address पर store होगा यह किसी को नही पता होता हैं की variable की वैल्यू का क्या address होगा ।
जिस जगह पर variable को मेमोरी मिलती हैं उस जगह को address कहते हैं । जो सिस्टम के उपर निर्भर होता हैं । variable की memory address जानने के लिए address & ऑपरेटर का उपयोग किया जाता हैं । address ऑपरेटर के द्वारा किसी भी variable का memory address जाना जा सकता हैं जो हर एक सिस्टम पर अलग हो सकता हैं ।
Operators वाले tutorial में हमने operators के प्रकार के बारे सीखा था यदि आपको operators के बारे में पता हैं तो पहले वो tutorial पढे ओर समझे । address & operator unary operator (C Tokens) होता हैं जिसका मतलब हैं की जो केवल एक operand पर कार्य करता है | Operand यहाँ पर variable का नाम भी हो सकता हैं ।
Syntax –
&variable_name;
किसी भी variable memory का address प्राप्त करने के लिए variable_name से पहले address & operator लिखा जता है ।
&abc
&ab_123
&v_1
चलिये उदाहरण से समझते हैं ।
Example of address operator (&) in C programming
#include <stdio.h>
void main()
{
int ab = 16;
float f=12.5;
printf("value of ab variable: %d\n", ab);
printf("address of ab variable: %p\n", &ab);
printf("value of f variable: %f\n", f);
printf("address of f variable: %p", &f);
}
Output -
value of ab variable: 16
address of ab variable: 0x7ffdac21c230
value of f variable: 12.500000
address of f variable: 0x7ffdac21c234
उपर दिये उदाहरण में हमने 2 variables को declare करने के साथ साथ initialize भी किया उसके बाद address & operator की मदत से दोनों variables का address प्राप्त भी किया ।
C programming में address operator (&) के द्वारा variable का memory address पता किया जाता हैं । जो की अलग अलग हो सकता हैं । जब आप कोड़ रन करेंगे तो आपको कुछ ओर address मिल सकता हैं ।
Indirection operator Asterisk (*) in C language
उपर हमने variable का memory address प्राप्त किया अब हम उस memory address से value प्राप्त करने के लिए indirection operator asterisk(*) का उपयोग करेंगे । Indirection operator भी unary ऑपरेटर ही होता हैं जो की एक operand पर काम करता हैं ।
Indirection operator (*) in C language –
Indirection operator (asterisk * ) एक ऐसा operator होता हैं जिसके द्वारा variable का memory address में store वैल्यू को प्राप्त किया जाता हैं ।
साधारण हिन्दी भाषा में समझे तो address operator (ampersand & ) से variable का मेमोरी address प्राप्त होता हैं अब उसी memory address से variable की वैल्यू लेने के लिए indirection operator का उपयोग करते हैं । इसे dereferencing operator भी कहते है | चलिये variable के address से variable की वैल्यू को प्राप्त करते हैं ।
Syntax –
*&variable_name;
उपर दिये गए syntax में देख सकते हैं की सबसे पहले indirection ऑपरेटर ( asterisk * ) फिर address operator & ओर फिर variable के name को लिखा जाता हैं ।
Example of indirection operator (*) in C programming -
#include <stdio.h>
void main()
{
int ab = 16;
int bc=*&ab;
printf("value of bc: %d\n", bc);
}
Output -
value of bc: 16
उपर दिये गए उदाहरण में हमने ab नाम से एक variable declare किया ओर 16 value assign भी की । उसके बाद हमने bc नाम से एक और variable declare किया और indirection operator * का उपयोग करके *&ab, ab variable के address से वैल्यू को bc variable मे store की जिससे bc variable को print करने पर 16 वैल्यू ही मिलती हैं ।
चलिये एक ओर उदाहरण से indirection operator * और address operator & को समझते हैं ।
#include <stdio.h>
void main()
{
int a= 18;
printf("value of a: %d\n", a);
printf("address of a: %d\n", &a);
printf("value of a: %d\n", *&a);
}
Output-
value of a: 18
address of a: 645171892
value of a: 18
उपर दिये गए उदाहरण को रन करने पर address वैल्यू कुछ भी display हो सकती हैं address system decide करता हैं ।
इस उदाहरण में सबसे पहले variable a नाम से declare और 18 वैल्यू assign (initialize करना , initial वैल्यू देना ) की ओर printf से a variable की वैल्यू display की ।
फिर next line में address operator & के द्वारा variable का memory address print कराया ।
उससे अगली line में indirection operator * के द्वारा उस address में स्टोर value को प्रिंट कराया यहाँ पर &a को as argument देना होता हैं जिससे address में store वैल्यू प्राप्त हो जाती हैं ।
इस तरह से address operator (ampersand &) और indirectional operator (asterisk *) का उपयोग C programming language में किया जाता हैं ।
Recommended Posts:-