Member Access Operator in Hindi
/ BCA / Programming with C and CPP
Member Access Operators in C Explained with Examples
Member Access Operator in Hindi
C भाषा में जब हम structure या pointer to structure के द्वारा data को access करते हैं, तब हमें "Member Access Operators" का उपयोग करना पड़ता है। ये दो प्रकार के होते हैं:
- Dot Operator (.)
- Arrow Operator (->)
इन दोनों operators का उपयोग structure के अंदर declared variables या members को access करने के लिए किया जाता है। यह topic beginners के लिए बहुत ज़रूरी है, क्योंकि जब हम complex data types के साथ काम करते हैं जैसे कि structure और pointer, तब इन्हीं operators की मदद से हम data को access कर पाते हैं।
What is Dot (.) Operator in Hindi
Dot Operator का उपयोग तब किया जाता है जब हमारे पास structure का सामान्य variable होता है, यानी कि pointer नहीं। इसका syntax बहुत ही सरल होता है:
struct StructureName varname;
varname.membername;
उदाहरण के लिए एक structure बनाते हैं जिसमें एक व्यक्ति का नाम और उम्र स्टोर हो:
#include <stdio.h>
struct Person {
char name[20];
int age;
};
int main() {
struct Person p1 = {"Amit", 25};
printf("Name: %s\n", p1.name);
printf("Age: %d\n", p1.age);
return 0;
}
ऊपर दिए गए कोड में हमने एक structure Person बनाया है जिसमें दो members हैं: name और age। फिर हमने एक variable p1 बनाया और उसमें value assign की। इसके बाद dot operator का इस्तेमाल करके हमने member variables को access किया जैसे: p1.name और p1.age।
Dot Operator का उपयोग केवल तब किया जाता है जब हमारे पास structure का normal variable हो, ना कि pointer।
What is Arrow (->) Operator in Hindi
Arrow Operator का उपयोग तब किया जाता है जब हम structure का pointer variable use करते हैं। क्योंकि pointer में direct member को access करने के लिए dereference करना पड़ता है, तो इस प्रक्रिया को आसान करने के लिए arrow operator दिया गया है।
Syntax:
struct StructureName *ptr;
ptr->membername;
उदाहरण देखते हैं:
#include <stdio.h>
struct Person {
char name[20];
int age;
};
int main() {
struct Person p1 = {"Ravi", 30};
struct Person *ptr = &p1;
printf("Name: %s\n", ptr->name);
printf("Age: %d\n", ptr->age);
return 0;
}
यहां ptr एक pointer है जो structure p1 को point करता है। अब हमें structure के members तक पहुंचना है तो हम ptr->name और ptr->age का उपयोग करते हैं। यह Arrow Operator का उदाहरण है।
यदि हम चाहें तो Arrow Operator की जगह dereferencing करके dot operator भी use कर सकते हैं:
(*ptr).name
(*ptr).age
लेकिन यह थोड़ा complex लगता है, इसलिए arrow operator का उपयोग ज्यादा प्रचलित है।
Comparison between Dot and Arrow Operator
| Basis | Dot Operator (.) | Arrow Operator (->) |
|---|---|---|
| Variable Type | Structure Variable | Pointer to Structure |
| Syntax | var.member | ptr->member |
| Use of Pointer | नहीं | हां |
| Ease of Use | Simple | Pointer के लिए Easy |
Member Access in Nested Structures in Hindi
Nested Structures का मतलब होता है कि एक structure के अंदर दूसरा structure भी define किया गया हो। ऐसी स्थिति में भी हम dot और arrow operators का use करके members को access कर सकते हैं।
पहले एक nested structure का उदाहरण लेते हैं:
#include <stdio.h>
struct Address {
char city[20];
int pin;
};
struct Student {
char name[20];
int roll;
struct Address addr;
};
int main() {
struct Student s1 = {"Rahul", 101, {"Delhi", 110001}};
printf("Name: %s\n", s1.name);
printf("City: %s\n", s1.addr.city);
printf("PIN: %d\n", s1.addr.pin);
return 0;
}
इस उदाहरण में, structure Address को structure Student के अंदर nested किया गया है। अब हम student का नाम और address access कर रहे हैं जैसे:
s1.names1.addr.citys1.addr.pin
यदि हम pointer के द्वारा access करना चाहते हैं तो:
struct Student *ptr = &s1;
printf("%s", ptr->addr.city);
यहां हमने structure के अंदर structure को भी arrow operator के द्वारा access किया है। ध्यान रहे कि जब आप arrow operator use करते हैं और member nested structure से है, तब आपको nested operator use करना होता है जैसे:
ptr->addr.city;
ptr->addr.pin;
Quick Summary in Points (सारांश)
- Dot (.) Operator का उपयोग तब किया जाता है जब हमारे पास structure का सामान्य variable होता है।
- Arrow (->) Operator का उपयोग तब होता है जब structure pointer variable के साथ काम करते हैं।
- Nested structure में हमें member तक पहुंचने के लिए एक के बाद एक dot या arrow का use करना होता है।
ptr->memberका अर्थ होता है कि pointer के माध्यम से उस member तक पहुंचना।var.memberका अर्थ होता है कि सीधे structure variable के member तक पहुंचना।- Arrow operator की मदद से हम code को सरल और readable बना सकते हैं।
FAQs
p1.age में हम structure variable p1 के age member को access कर रहे हैं।
s1.addr.city या ptr->addr.city।
(*ptr).name या बेहतर तरीका है arrow operator ptr->name का उपयोग करना।