Warum Struktur verwenden?
In C gibt es Fälle, in denen wir mehrere Attribute einer Entität speichern müssen. Es ist nicht notwendig, dass eine Entität nur über alle Informationen eines Typs verfügt. Es kann verschiedene Attribute verschiedener Datentypen haben. Zum Beispiel eine Entität Student kann seinen Namen (String), die Rollennummer (int) und die Markierungen (float) haben. Um solche Informationen über einen Entitätsstudenten zu speichern, haben wir die folgenden Ansätze:
- Erstellen Sie individuelle Arrays zum Speichern von Namen, Rollennummern und Markierungen.
- Verwenden Sie eine spezielle Datenstruktur, um die Sammlung verschiedener Datentypen zu speichern.
Schauen wir uns den ersten Ansatz im Detail an.
#include void main () { char names[2][10],dummy; // 2-dimensioanal character array names is used to store the names of the students int roll_numbers[2],i; float marks[2]; for (i=0;i<3;i++) { printf('enter the name, roll number, and marks of student %d',i+1); scanf('%s %d %f',&names[i],&roll_numbers[i],&marks[i]); scanf('%c',&dummy); enter will be stored into dummy character at each iteration } printf('printing details ... '); for (i="0;i<3;i++)" printf('%s %f ',names[i],roll_numbers[i],marks[i]); < pre> <p> <strong>Output</strong> </p> <pre> Enter the name, roll number, and marks of the student 1Arun 90 91 Enter the name, roll number, and marks of the student 2Varun 91 56 Enter the name, roll number, and marks of the student 3Sham 89 69 Printing the Student details... Arun 90 91.000000 Varun 91 56.000000 Sham 89 69.000000 </pre> <p>The above program may fulfill our requirement of storing the information of an entity student. However, the program is very complex, and the complexity increase with the amount of the input. The elements of each of the array are stored contiguously, but all the arrays may not be stored contiguously in the memory. C provides you with an additional and simpler approach where you can use a special data structure, i.e., structure, in which, you can group all the information of different data type regarding an entity.</p> <h2>What is Structure</h2> <p>Structure in c is a user-defined data type that enables us to store the collection of different data types. Each element of a structure is called a member. Structures ca; simulate the use of classes and templates as it can store various information </p> <p>The <strong>,struct</strong> keyword is used to define the structure. Let's see the syntax to define the structure in c.</p> <pre> struct structure_name { data_type member1; data_type member2; . . data_type memeberN; }; </pre> <p>Let's see the example to define a structure for an entity employee in c.</p> <pre> struct employee { int id; char name[20]; float salary; }; </pre> <p>The following image shows the memory allocation of the structure employee that is defined in the above example.</p> <img src="//techcodeview.com/img/c-tutorial/01/c-structure.webp" alt="c structure memory allocation"> <p>Here, <strong>struct</strong> is the keyword; <strong>employee</strong> is the name of the structure; <strong>id</strong> , <strong>name</strong> , and <strong>salary</strong> are the members or fields of the structure. Let's understand it by the diagram given below:</p> <img src="//techcodeview.com/img/c-tutorial/01/c-structure-2.webp" alt="c structure"> <h2>Declaring structure variable</h2> <p>We can declare a variable for the structure so that we can access the member of the structure easily. There are two ways to declare structure variable:</p> <ol class="points"> <li>By struct keyword within main() function</li> <li>By declaring a variable at the time of defining the structure.</li> </ol> <p> <strong>1st way:</strong> </p> <p>Let's see the example to declare the structure variable by struct keyword. It should be declared within the main function.</p> <pre> struct employee { int id; char name[50]; float salary; }; </pre> <p>Now write given code inside the main() function.</p> <pre> struct employee e1, e2; </pre> <p>The variables e1 and e2 can be used to access the values stored in the structure. Here, e1 and e2 can be treated in the same way as the objects in <a href="/c-tutorial">C++</a> and <a href="/java-tutorial">Java</a> .</p> <p> <strong>2nd way:</strong> </p> <p>Let's see another way to declare variable at the time of defining the structure.</p> <pre> struct employee { int id; char name[50]; float salary; }e1,e2; </pre> <h3>Which approach is good</h3> <p>If number of variables are not fixed, use the 1st approach. It provides you the flexibility to declare the structure variable many times.</p> <p>If no. of variables are fixed, use 2nd approach. It saves your code to declare a variable in main() function.</p> <h2>Accessing members of the structure</h2> <p>There are two ways to access structure members:</p> <ol class="points"> <li>By . (member or dot operator)</li> <li>By -> (structure pointer operator)</li> </ol> <p>Let's see the code to access the <em>id</em> member of <em>p1</em> variable by. (member) operator.</p> <pre> p1.id </pre> <h3>C Structure example</h3> <p>Let's see a simple example of structure in C language.</p> <pre> #include #include struct employee { int id; char name[50]; }e1; //declaring e1 variable for structure int main( ) { //store first employee information e1.id=101; strcpy(e1.name, 'Sonoo Jaiswal');//copying string into char array //printing first employee information printf( 'employee 1 id : %d ', e1.id); printf( 'employee 1 name : %s ', e1.name); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> employee 1 id : 101 employee 1 name : Sonoo Jaiswal </pre> <p>Let's see another example of the structure in <a href="/c-programming-language-tutorial">C language</a> to store many employees information.</p> <pre> #include #include struct employee { int id; char name[50]; float salary; }e1,e2; //declaring e1 and e2 variables for structure int main( ) { //store first employee information e1.id=101; strcpy(e1.name, 'Sonoo Jaiswal');//copying string into char array e1.salary=56000; //store second employee information e2.id=102; strcpy(e2.name, 'James Bond'); e2.salary=126000; //printing first employee information printf( 'employee 1 id : %d ', e1.id); printf( 'employee 1 name : %s ', e1.name); printf( 'employee 1 salary : %f ', e1.salary); //printing second employee information printf( 'employee 2 id : %d ', e2.id); printf( 'employee 2 name : %s ', e2.name); printf( 'employee 2 salary : %f ', e2.salary); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> employee 1 id : 101 employee 1 name : Sonoo Jaiswal employee 1 salary : 56000.000000 employee 2 id : 102 employee 2 name : James Bond employee 2 salary : 126000.000000 </pre> <hr></3;i++)>
Das oben genannte Programm erfüllt möglicherweise unsere Anforderung, die Informationen eines Entitätsstudenten zu speichern. Allerdings ist das Programm sehr komplex und die Komplexität nimmt mit der Menge der Eingaben zu. Die Elemente jedes Arrays werden zusammenhängend gespeichert, aber möglicherweise werden nicht alle Arrays zusammenhängend im Speicher gespeichert. C bietet Ihnen einen zusätzlichen und einfacheren Ansatz, bei dem Sie eine spezielle Datenstruktur verwenden können, d. h. eine Struktur, in der Sie alle Informationen verschiedener Datentypen zu einer Entität gruppieren können.
Was ist Struktur?
Struktur in c ist ein benutzerdefinierter Datentyp, der es uns ermöglicht, die Sammlung verschiedener Datentypen zu speichern. Jedes Element einer Struktur wird als Mitglied bezeichnet. Strukturen ca.; Simulieren Sie die Verwendung von Klassen und Vorlagen, da verschiedene Informationen gespeichert werden können
Der ,struktur Das Schlüsselwort wird verwendet, um die Struktur zu definieren. Sehen wir uns die Syntax zum Definieren der Struktur in c an.
struct structure_name { data_type member1; data_type member2; . . data_type memeberN; };
Sehen wir uns das Beispiel zum Definieren einer Struktur für einen Entitätsmitarbeiter in c an.
struct employee { int id; char name[20]; float salary; };
Das folgende Bild zeigt die Speicherzuordnung der Struktur „mitarbeiter“, die im obigen Beispiel definiert ist.
Hier, Struktur ist das Schlüsselwort; Mitarbeiter ist der Name der Struktur; Ausweis , Name , Und Gehalt sind die Mitglieder oder Felder der Struktur. Lassen Sie es uns anhand des folgenden Diagramms verstehen:
Strukturvariable deklarieren
Wir können eine Variable für die Struktur deklarieren, damit wir einfach auf das Mitglied der Struktur zugreifen können. Es gibt zwei Möglichkeiten, Strukturvariablen zu deklarieren:
- Durch das Schlüsselwort struct innerhalb der Funktion main()
- Durch Deklaration einer Variablen zum Zeitpunkt der Strukturdefinition.
1. Weg:
Sehen wir uns das Beispiel an, um die Strukturvariable mit dem Schlüsselwort struct zu deklarieren. Es sollte innerhalb der Hauptfunktion deklariert werden.
struct employee { int id; char name[50]; float salary; };
Schreiben Sie nun den angegebenen Code in die Funktion main().
struct employee e1, e2;
Über die Variablen e1 und e2 kann auf die in der Struktur gespeicherten Werte zugegriffen werden. Hier können e1 und e2 genauso behandelt werden wie die Objekte in C++ Und Java .
2. Weg:
Sehen wir uns eine andere Möglichkeit an, Variablen zum Zeitpunkt der Definition der Struktur zu deklarieren.
struct employee { int id; char name[50]; float salary; }e1,e2;
Welcher Ansatz ist gut?
Wenn die Anzahl der Variablen nicht festgelegt ist, verwenden Sie den ersten Ansatz. Es bietet Ihnen die Flexibilität, die Strukturvariable mehrmals zu deklarieren.
Wenn nein. Wenn die Anzahl der Variablen fest ist, verwenden Sie den 2. Ansatz. Es speichert Ihren Code, um eine Variable in der Funktion main() zu deklarieren.
Auf Mitglieder der Struktur zugreifen
Es gibt zwei Möglichkeiten, auf Strukturelemente zuzugreifen:
- Von . (Mitglieds- oder Punktoperator)
- Von -> (Strukturzeigeroperator)
Sehen wir uns den Code für den Zugriff an Ausweis Mitglied von p1 variabel durch. (Mitglieds-)Betreiber.
p1.id
Beispiel für eine C-Struktur
Sehen wir uns ein einfaches Beispiel für die Struktur in der Sprache C an.
#include #include struct employee { int id; char name[50]; }e1; //declaring e1 variable for structure int main( ) { //store first employee information e1.id=101; strcpy(e1.name, 'Sonoo Jaiswal');//copying string into char array //printing first employee information printf( 'employee 1 id : %d ', e1.id); printf( 'employee 1 name : %s ', e1.name); return 0; }
Ausgabe:
employee 1 id : 101 employee 1 name : Sonoo Jaiswal
Sehen wir uns ein weiteres Beispiel der Struktur an C Sprache um viele Mitarbeiterinformationen zu speichern.
#include #include struct employee { int id; char name[50]; float salary; }e1,e2; //declaring e1 and e2 variables for structure int main( ) { //store first employee information e1.id=101; strcpy(e1.name, 'Sonoo Jaiswal');//copying string into char array e1.salary=56000; //store second employee information e2.id=102; strcpy(e2.name, 'James Bond'); e2.salary=126000; //printing first employee information printf( 'employee 1 id : %d ', e1.id); printf( 'employee 1 name : %s ', e1.name); printf( 'employee 1 salary : %f ', e1.salary); //printing second employee information printf( 'employee 2 id : %d ', e2.id); printf( 'employee 2 name : %s ', e2.name); printf( 'employee 2 salary : %f ', e2.salary); return 0; }
Ausgabe:
employee 1 id : 101 employee 1 name : Sonoo Jaiswal employee 1 salary : 56000.000000 employee 2 id : 102 employee 2 name : James Bond employee 2 salary : 126000.000000
3;i++)>