Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में स्ट्रक्चर्स के लिए पॉइंटर्स क्या हैं?

संरचना का सूचक संपूर्ण संरचना का जोड़ रखता है।

इसका उपयोग जटिल डेटा संरचनाएं जैसे लिंक्ड सूचियां, पेड़, ग्राफ़ इत्यादि बनाने के लिए किया जाता है।

संरचना के सदस्यों को एक विशेष ऑपरेटर का उपयोग करके एक्सेस किया जा सकता है जिसे एरो ऑपरेटर ( -> ) कहा जाता है।

घोषणा

सी प्रोग्रामिंग में पॉइंटर्स टू स्ट्रक्चर्स के लिए घोषणा निम्नलिखित है -

struct tagname *ptr;

उदाहरण के लिए - स्ट्रक्चर स्टूडेंट *s -

एक्सेस करना

यह नीचे बताया गया है कि पॉइंटर्स को संरचनाओं तक कैसे पहुंचा जाए।

Ptr-> membername;

उदाहरण के लिए - s->sno, s->sname, s->marks;

उदाहरण कार्यक्रम

निम्न प्रोग्राम संरचनाओं के लिए पॉइंटर्स के उपयोग को दर्शाता है -

#include<stdio.h>
struct student{
   int sno;
   char sname[30];
   float marks;
};
main ( ){
   struct student s;
   struct student *st;
   printf("enter sno, sname, marks:");
   scanf ("%d%s%f", & s.sno, s.sname, &s. marks);
   st = &s;
   printf ("details of the student are");
   printf ("Number = %d\n", st ->sno);
   printf ("name = %s\n", st->sname);
   printf ("marks =%f\n", st ->marks);
   getch ( );
}

आउटपुट

आइए हम उपरोक्त प्रोग्राम चलाते हैं जो निम्नलिखित परिणाम देगा -

enter sno, sname, marks:1 Lucky 98
details of the student are:
Number = 1
name = Lucky
marks =98.000000

उदाहरण 2

एक अन्य उदाहरण पर विचार करें जो संरचनाओं के पॉइंटर्स के कामकाज की व्याख्या करता है।

#include<stdio.h>
struct person{
   int age;
   float weight;
};
int main(){
   struct person *personPtr, person1;
   personPtr = &person1;
   printf("Enter age: ");
   scanf("%d", &personPtr->age);
   printf("Enter weight: ");
   scanf("%f", &personPtr->weight);
   printf("Displaying:\n");
   printf("Age: %d\n", personPtr->age);
   printf("weight: %f", personPtr->weight);
   return 0;
}

आउटपुट

आइए हम उपरोक्त प्रोग्राम चलाते हैं जो निम्नलिखित परिणाम देगा -

Enter age: 45
Enter weight: 60
Displaying:
Age: 45
weight: 60.000000

  1. सी भाषा में पॉइंटर्स के साथ विभिन्न पॉइंटर ऑपरेशंस और समस्याएं क्या हैं?

    एक पॉइंटर एक वेरिएबल होता है जिसका मान दूसरे वेरिएबल का पता होता है, यानी मेमोरी लोकेशन का सीधा पता। किसी भी चर या स्थिरांक की तरह, किसी भी चर पते को संग्रहीत करने के लिए इसका उपयोग करने से पहले आपको एक सूचक घोषित करना होगा। निम्नलिखित कथन पर विचार करें - int qty = 179; मेमोरी में वेरिएबल का प्रति

  1. C लैंग्वेज में शिफ्ट ऑपरेशंस क्या हैं?

    समस्या C भाषा का उपयोग करके किसी संख्या के बाएँ, दाएँ पाली और पूरक को दिखाने का सरल कार्यक्रम क्या है? समाधान बायां शिफ़्ट यदि किसी चर के मान को एक बार बाएँ-शिफ्ट किया जाता है, तो उसका मान दुगना हो जाता है। उदाहरण के लिए, a =10, फिर a<<1 =20 राइट शिफ्ट यदि किसी चर का मान एक बार दायाँ-शिफ्ट किय

  1. C भाषा में प्राथमिक डेटा प्रकार क्या हैं?

    सी कंपाइलर चार मूलभूत डेटा प्रकारों का समर्थन करते हैं। वे इस प्रकार हैं - पूर्णांक चरित्र फ्लोटिंग - पॉइंट डबल सटीक फ़्लोटिंग पॉइंट प्राथमिक डेटा प्रकार अभिन्न डेटा प्रकार इंटीग्रल डेटा टाइप्स का इस्तेमाल पूरे नंबर और कैरेक्टर को स्टोर करने के लिए किया जाता है। इसे आगे दो प्रकारों में वर्गीकृ