Ein Strukturzeiger ist als Zeiger definiert, der auf die Adresse des Speicherblocks zeigt, in dem a gespeichert ist Struktur bekannt als Strukturzeiger. Mithilfe von Strukturzeigern werden komplexe Datenstrukturen wie verknüpfte Listen, Bäume, Diagramme usw. erstellt. Der Strukturzeiger gibt die Adresse einer Struktur im Speicher an, indem er die Variable auf die Strukturvariable zeigt.
Beispiel:
C
So ermitteln Sie die Anzeigegröße
// C program to demonstrate structure pointer> #include> struct> point {> >int> value;> };> int> main()> {> >struct> point s;> > >// Initialization of the structure pointer> >struct> point* ptr = &s;> >return> 0;> }> |
>
>
Im obigen Code S ist eine Instanz von struct point and ptr ist der Strukturzeiger, da er die Adresse des Strukturpunkts speichert.
Zugriff auf das Strukturelement mit Hilfe von Zeigern
Es gibt zwei Möglichkeiten, mit Hilfe eines Strukturzeigers auf die Mitglieder der Struktur zuzugreifen:
- Mit Hilfe des (*) Sternchen- oder Indirektionsoperators und (.) Punktoperators.
- Mit Hilfe des Pfeiloperators ( -> ).
Nachfolgend finden Sie das Programm zum Zugriff auf die Strukturelemente mithilfe des Strukturzeigers und des Punktoperators.
C
Java-Klassendiagramm
// C Program to demonstrate Structure pointer> #include> #include> struct> Student {> >int> roll_no;> >char> name[30];> >char> branch[40];> >int> batch;> };> int> main()> {> >struct> Student s1;> >struct> Student* ptr = &s1;> >s1.roll_no = 27;> >strcpy>(s1.name,>'Kamlesh Joshi'>);> >strcpy>(s1.branch,>'Computer Science And Engineering'>);> >s1.batch = 2019;> >printf>(>'Roll Number: %d
'>, (*ptr).roll_no);> >printf>(>'Name: %s
'>, (*ptr).name);> >printf>(>'Branch: %s
'>, (*ptr).branch);> >printf>(>'Batch: %d'>, (*ptr).batch);> >return> 0;> }> |
String in Datum konvertieren
>
>Ausgabe:
1>
Nachfolgend finden Sie das Programm zum Zugriff auf die Strukturelemente mithilfe des Strukturzeigers und des Pfeiloperators. In diesem Programm haben wir einen Structure Student erstellt, der Strukturvariablen s enthält. Der Strukturstudent hat roll_no, name, branch und batch.
C
Konvertieren Sie die Zeichenfolge in ein Datum
// C Program to demonstrate Structure pointer> #include> #include> // Creating Structure Student> struct> Student {> >int> roll_no;> >char> name[30];> >char> branch[40];> >int> batch;> };> // variable of structure with pointer defined> struct> Student s, *ptr;> int> main()> {> >ptr = &s;> >// Taking inputs> >printf>(>'Enter the Roll Number of Student
'>);> >scanf>(>'%d'>, &ptr->roll_no);> >printf>(>'Enter Name of Student
'>);> >scanf>(>'%s'>, &ptr->Name);> >printf>(>'Enter Branch of Student
'>);> >scanf>(>'%s'>, &ptr->Zweig);> >printf>(>'Enter batch of Student
'>);> >scanf>(>'%d'>, &ptr->Batch);> >// Displaying details of the student> >printf>(>'
Student details are:
'>);> >printf>(>'Roll No: %d
'>, ptr->roll_no);> >printf>(>'Name: %s
'>, ptr->Name);> >printf>(>'Branch: %s
'>, ptr->Zweig);> >printf>(>'Batch: %d
'>, ptr->Batch);> >return> 0;> }> |
>
>
Ausgabe:
Enter the Roll Number of Student 27 Enter Name of Student Kamlesh_Joshi Enter Branch of Student Computer_Science_And_Engineering Enter batch of Student 2019 Student details are: Roll No: 27 Name: Kamlesh_Joshi Branch: Computer_Science_And_Engineering Batch: 2019>