logo

Structure C

Pourquoi utiliser la structure ?

En C, il existe des cas où nous devons stocker plusieurs attributs d'une entité. Il n’est pas nécessaire qu’une entité dispose de toutes les informations d’un seul type. Il peut avoir différents attributs de différents types de données. Par exemple, une entité Étudiant peut avoir son nom (chaîne), son numéro de rouleau (int), ses marques (float). Pour stocker ce type d'informations concernant un étudiant d'une entité, nous avons les approches suivantes :

  • Construisez des tableaux individuels pour stocker les noms, les numéros de rôle et les marques.
  • Utilisez une structure de données spéciale pour stocker la collection de différents types de données.

Examinons la première approche en détail.

 #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&lt;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&apos;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&apos;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&apos;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&apos;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&apos;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 -&gt; (structure pointer operator)</li> </ol> <p>Let&apos;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&apos;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, &apos;Sonoo Jaiswal&apos;);//copying string into char array //printing first employee information printf( &apos;employee 1 id : %d
&apos;, e1.id); printf( &apos;employee 1 name : %s
&apos;, e1.name); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> employee 1 id : 101 employee 1 name : Sonoo Jaiswal </pre> <p>Let&apos;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, &apos;Sonoo Jaiswal&apos;);//copying string into char array e1.salary=56000; //store second employee information e2.id=102; strcpy(e2.name, &apos;James Bond&apos;); e2.salary=126000; //printing first employee information printf( &apos;employee 1 id : %d
&apos;, e1.id); printf( &apos;employee 1 name : %s
&apos;, e1.name); printf( &apos;employee 1 salary : %f
&apos;, e1.salary); //printing second employee information printf( &apos;employee 2 id : %d
&apos;, e2.id); printf( &apos;employee 2 name : %s
&apos;, e2.name); printf( &apos;employee 2 salary : %f
&apos;, 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++)>

Le programme ci-dessus peut répondre à notre exigence de stockage des informations d'un étudiant d'entité. Cependant, le programme est très complexe et la complexité augmente avec la quantité d'entrée. Les éléments de chacun des tableaux sont stockés de manière contiguë, mais tous les tableaux ne peuvent pas être stockés de manière contiguë dans la mémoire. C vous offre une approche supplémentaire et plus simple dans laquelle vous pouvez utiliser une structure de données spéciale, c'est-à-dire une structure dans laquelle vous pouvez regrouper toutes les informations de différents types de données concernant une entité.

Qu'est-ce que la structure

La structure en c est un type de données défini par l'utilisateur qui nous permet de stocker la collection de différents types de données. Chaque élément d'une structure est appelé un membre. Structures ca; simuler l'utilisation de classes et de modèles car il peut stocker diverses informations

convertir la chaîne en date

Le ,structure Le mot-clé est utilisé pour définir la structure. Voyons la syntaxe pour définir la structure en c.

 struct structure_name { data_type member1; data_type member2; . . data_type memeberN; }; 

Voyons l'exemple pour définir une structure pour un employé d'une entité en c.

 struct employee { int id; char name[20]; float salary; }; 

L'image suivante montre l'allocation de mémoire de l'employé de structure défini dans l'exemple ci-dessus.

allocation de mémoire de structure c

Ici, structurer est le mot-clé ; employé est le nom de la structure ; identifiant , nom , et salaire sont les membres ou champs de la structure. Comprenons-le par le schéma ci-dessous :

structure c

Déclaration d'une variable de structure

Nous pouvons déclarer une variable pour la structure afin de pouvoir accéder facilement au membre de la structure. Il existe deux manières de déclarer une variable de structure :

java convertir un caractère en chaîne
  1. Par mot-clé struct dans la fonction main()
  2. En déclarant une variable au moment de la définition de la structure.

1ère manière :

Voyons l'exemple pour déclarer la variable de structure par le mot-clé struct. Il doit être déclaré dans la fonction principale.

où puis-je trouver les paramètres de mon navigateur
 struct employee { int id; char name[50]; float salary; }; 

Maintenant, écrivez le code donné dans la fonction main().

 struct employee e1, e2; 

Les variables e1 et e2 peuvent être utilisées pour accéder aux valeurs stockées dans la structure. Ici, e1 et e2 peuvent être traités de la même manière que les objets de C++ et Java .

2ème manière :

Voyons une autre façon de déclarer une variable au moment de définir la structure.

 struct employee { int id; char name[50]; float salary; }e1,e2; 

Quelle approche est la bonne

Si le nombre de variables n'est pas fixe, utilisez la 1ère approche. Il vous offre la possibilité de déclarer la variable de structure plusieurs fois.

Sinon. des variables sont fixes, utilisez la 2ème approche. Il enregistre votre code pour déclarer une variable dans la fonction main().

Accéder aux membres de la structure

Il existe deux manières d'accéder aux membres de la structure :

  1. Par . (membre ou opérateur point)
  2. Par -> (opérateur de pointeur de structure)

Voyons le code pour accéder au identifiant membre de p1 variable par. (membre) opérateur.

chaîne à char en java
 p1.id 

Exemple de structure C

Voyons un exemple simple de structure en langage C.

 #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, &apos;Sonoo Jaiswal&apos;);//copying string into char array //printing first employee information printf( &apos;employee 1 id : %d
&apos;, e1.id); printf( &apos;employee 1 name : %s
&apos;, e1.name); return 0; } 

Sortir:

 employee 1 id : 101 employee 1 name : Sonoo Jaiswal 

Voyons un autre exemple de structure dans langage C pour stocker de nombreuses informations sur les employés.

 #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, &apos;Sonoo Jaiswal&apos;);//copying string into char array e1.salary=56000; //store second employee information e2.id=102; strcpy(e2.name, &apos;James Bond&apos;); e2.salary=126000; //printing first employee information printf( &apos;employee 1 id : %d
&apos;, e1.id); printf( &apos;employee 1 name : %s
&apos;, e1.name); printf( &apos;employee 1 salary : %f
&apos;, e1.salary); //printing second employee information printf( &apos;employee 2 id : %d
&apos;, e2.id); printf( &apos;employee 2 name : %s
&apos;, e2.name); printf( &apos;employee 2 salary : %f
&apos;, e2.salary); return 0; } 

Sortir:

 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