logo

Estructura del punter en C

Un punter d'estructura es defineix com el punter que apunta a l'adreça del bloc de memòria que emmagatzema a estructura conegut com a punter d'estructura. Les estructures de dades complexes com llistes enllaçades, arbres, gràfics, etc. es creen amb l'ajuda de punters d'estructura. El punter d'estructura indica l'adreça d'una estructura a la memòria apuntant la variable a la variable d'estructura.
Exemple:

C








// 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;> }>



>

>

En el codi anterior s és una instància de punt d'estructura i ptr és el punter d'estructura perquè emmagatzema l'adreça del punt d'estructura.

Accés al membre de l'estructura amb l'ajuda de punters

Hi ha dues maneres d'accedir als membres de l'estructura amb l'ajuda d'un punter d'estructura:

  1. Amb l'ajuda de l'operador asterisc (*) o d'indirecció i l'operador de punt (.).
  2. Amb l'ajuda de l'operador de fletxa (->).

A continuació es mostra el programa per accedir als membres de l'estructura mitjançant el punter d'estructura amb l'ajuda de l'operador de punt.

C

variables globals js




// 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;> }>

>

>

Sortida:

1>

A continuació es mostra el programa per accedir als membres de l'estructura mitjançant el punter d'estructura amb l'ajuda de l'operador Arrow. En aquest programa, hem creat un Structure Student que conté la variable d'estructura s. L'Estructura Student té roll_no, nom, branca i lot.

C




// 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->nom);> >printf>(>'Enter Branch of Student '>);> >scanf>(>'%s'>, &ptr->branca);> >printf>(>'Enter batch of Student '>);> >scanf>(>'%d'>, &ptr->lot);> >// Displaying details of the student> >printf>(>' Student details are: '>);> >printf>(>'Roll No: %d '>, ptr->roll_no);> >printf>(>'Name: %s '>, ptr->nom);> >printf>(>'Branch: %s '>, ptr->branca);> >printf>(>'Batch: %d '>, ptr->lot);> >return> 0;> }>

>

>

Sortida:

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>