Table des matières:
Vidéo: Langage C #14 - structures et types 2024
Vous pouvez considérer la structure du langage de programmation C comme un multivariable, ou plusieurs variables regroupées en une seule. Vous utilisez des structures pour stocker ou accéder à des informations complexes. De cette façon, vous pouvez garder divers int, char, variables flottantes, et même des tableaux, le tout dans un seul paquet soigné.
Notions de base de struct
Une structure n'est pas un type de variable. Au lieu de cela, pensez-y comme un cadre qui contient plusieurs types de variables. À bien des égards, une structure est similaire à un enregistrement dans une base de données. Par exemple:
Nom Âge Dette de jeu
Ces trois éléments peuvent être des champs d'un enregistrement de base de données, mais ils peuvent également être membres d'une structure: Nom serait une chaîne; Age, un nombre entier; et Gambling Debt, une valeur à virgule flottante non signée. Voici comment un tel enregistrement ressemblerait à une structure dans C:
struct record {char name [32]; int âge; dette flottante;};
struct est un mot-clé de langage C qui introduit, définit ou crée une nouvelle structure.
record est le nom de la nouvelle structure en cours de création.
Dans les accolades, résident les membres de la structure, les variables contenues dans la structure nommée. Le type de structure d'enregistrement contient trois variables membres: un nom de chaîne, un int nommé age et une valeur flottante, debt.
Pour utiliser la structure, vous devez déclarer une variable de structure du type de structure que vous avez créé. Par exemple:
struct record humain;
Cette ligne déclare une nouvelle variable du type de structure d'enregistrement. La nouvelle variable s'appelle humain .
Les variables de structure peuvent également être déclarées lorsque vous définissez la structure elle-même. Par exemple:
struct record {char name [32]; int âge; dette flottante;} humain;
Ces instructions définissent la structure d'enregistrement et déclarent une variable de structure d'enregistrement, humain . Plusieurs variables de ce type de structure peuvent également être créées:
struct record {char name [32]; int âge; dette flottante;} bill, mary, dan, susie;
Quatre variables de structure d'enregistrement sont créées dans cet exemple. Chaque variable a accès aux trois membres définis dans la structure.
Pour accéder aux membres d'une variable de structure, vous utilisez un point, qui est l'opérateur membre . Il connecte le nom de la variable de structure avec un nom de membre. Par exemple:
printf ("Victim:% sn", nom de facture);
Cette instruction fait référence au nom member dans la variable de structure bill . Un tableau char, il peut être utilisé dans votre code comme n'importe quel autre tableau char. Les autres membres de la variable de structure peuvent être utilisés comme leurs homologues individuels:
dan.âge = 32;
Comment remplir une structure
Comme pour les autres variables, vous pouvez affecter des valeurs à une variable de structure lors de sa création. Vous devez d'abord définir le type de structure, puis déclarer une variable de structure avec ses valeurs de membre prédéfinies. Assurez-vous que les valeurs prédéfinies correspondent à l'ordre et au type de membres définis dans la structure, comme indiqué dans Déclarer une structure initialisée.
DÉCLARATION D'UNE STRUCTURE INITIALISÉE
#include int main () {struct président {char name [40]; int année;}; struct president first = {"George Washington", 1789}; printf ("Le premier président était% sn", prénom.); printf ("Il a été inauguré en% dn", première année); return (0);}
Exercice 1 : Créez un nouveau programme en tapant le code source de Déclarer une structure initialisée dans l'éditeur. Construire et courir.
Vous pouvez également déclarer une structure et l'initialiser en une seule instruction:
struct president {char name [40]; int année;} premier = {"George Washington", 1789};
Exercice 2 : Modifiez votre code source à partir de l'Exercice 1 pour que la structure et la variable soient déclarées et initialisées comme une seule instruction.
Bien que vous puissiez déclarer une structure et initialiser une variable de structure comme indiqué ci-dessus, vous ne pouvez vous en passer qu'une seule fois. Vous ne pouvez pas utiliser la technique pour déclarer la deuxième variable de structure, qui doit être effectuée de la manière traditionnelle, comme indiqué dans Déclarer une structure initialisée.
Exercice 3 : Ajoutez une autre variable de structure de président à votre code, en initialisant cette structure avec des informations sur le deuxième président, John Adams, qui a été inauguré en 1797. Affichez le contenu des deux structures.
Comment faire un tableau de structures
Créer des variables de structure individuelles, les unes après les autres, est aussi ennuyeux et inutile que de créer une série de n'importe quel type de variable. La solution pour plusieurs structures est la même que pour plusieurs variables individuelles: un tableau.
Un tableau de structure est déclaré comme ceci:
struct scores player [4];
Cette déclaration déclare un tableau de structures de scores. Le tableau s'appelle player et contient quatre variables de structure en tant qu'éléments.
Les structures du tableau sont accessibles en utilisant une combinaison de notation de tableau et de structure. Par exemple:
joueur [2]. name
La variable de la ligne précédente accède au membre name dans le troisième élément du tableau de structure du lecteur. Oui, c'est le troisième élément car le premier élément serait référencé comme ceci:
player [0]. name
Les tableaux commencent à numéroter avec l'élément 0, et non l'élément 1.
La ligne 10 dans les tableaux de structures déclare un tableau de quatre structures de scores. Le tableau est nommé joueur. Les lignes 13 à 19 remplissent chaque structure du tableau. Les lignes 21 à 27 affichent les valeurs des membres de chaque structure.
TABLEAUX DE STRUCTURES
#include int main () {struct scores {char name [32]; score int;}; struct scores joueur [4]; int x; pour (x = 0; x <4; x ++) {printf ("Entrer joueur% d:", x + 1); scanf ("% s", joueur [x].prénom); printf ("Entrez leur score:"); scanf ("% d", & joueur [x]. score);} puts ("Infos joueur"); printf ("# tNametScoren"); pour (x = 0; x <4; x ++) {printf ("% dt% st% 5dn", x + 1, joueur [x]. nom, joueur [x]. score);} return (0);}
Exercice 4 : Tapez le code source de Arrays of Structures dans votre éditeur. Construire et exécuter le programme. Essayez de garder les scores à moins de cinq chiffres afin qu'ils s'alignent correctement.
Exercice 5 : Ajoutez du code aux tableaux de structures de sorte que l'affichage des structures soit trié en commençant par le score le plus élevé. Oui, vous pouvez le faire. Le tri d'un tableau de structures fonctionne exactement comme le tri d'un autre tableau.
Voici un indice: La ligne 27 de la solution ressemble à ceci:
player [a] = player [b];
Vous pouvez échanger des éléments de tableau de structure tout comme vous pouvez échanger des éléments de tableau. Vous n'avez pas besoin d'échanger les membres de la variable de structure.