Notes in Hindi

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.name
  • s1.addr.city
  • s1.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

Dot operator का उपयोग structure के सामान्य variable के किसी member को access करने के लिए किया जाता है। जैसे p1.age में हम structure variable p1 के age member को access कर रहे हैं।
जब हम structure का pointer variable use करते हैं, तब हमें arrow (->) operator का उपयोग करना चाहिए ताकि हम आसानी से उस pointer के जरिए structure के members को access कर सकें।
Dot operator का उपयोग structure variable के साथ किया जाता है, जबकि arrow operator structure के pointer variable के साथ किया जाता है। Arrow operator dereference की जरूरत को eliminate करता है।
Nested structure के members को access करने के लिए dot या arrow operators का chaining के रूप में उपयोग किया जाता है जैसे: s1.addr.city या ptr->addr.city
नहीं, dot operator structure pointer के साथ सीधे उपयोग नहीं किया जा सकता। पहले pointer को dereference करना होगा, जैसे (*ptr).name या बेहतर तरीका है arrow operator ptr->name का उपयोग करना।

Please Give Us Feedback