Bonjour et bienvenue à nouveau. Continuons notre discussion sur les structures
et parlons de leur relation avec les tableaux.
Nous avons expliqué comment les structures sont similaires aux tableaux et que vous pouvez stocker plusieurs
valeurs, mais elles sont différentes car vous pouvez avoir différents types de données et
les regrouper de cette façon.
Mais vous pouvez également avoir des tableaux de structures similaires.
Vous avez donc vu à quel point la structure est utile et vous permet de regrouper logiquement les
éléments liés, nous l'avons vu. Nous savons définir une structure
avec différents éléments en utilisant le mot-clé struct, en utilisant un
nom de balise.
Et nous savons aussi créer une variable de ce type.
Parce que ce qu'est essentiellement une structure, c'est un nouveau type de données que vous pouvez utiliser.
Et puis, vous pouvez accéder aux éléments d'une structure à l'aide de l'opérateur de sélection de membres.
Eh bien, qu'en est-il si vous souhaitez créer plusieurs structures à
l'intérieur d'un tableau. Vous pouvez le faire.
Ainsi, par exemple, il suffit de garder une trace d'une variable au lieu
de trois pour chaque date utilisée par le programme, c'est l'avantage d'une structure.
Si nous voulions gérer 10 dates différentes dans un programme,
nous n'aurions qu'à garder une trace de 10 variables différentes au lieu de 30.
Parce que rappelez-vous, la structure contient trois variables à l'intérieur d'elle-même.
10 pour différentes variables, c'est encore beaucoup, donc ce n'est
vraiment pas la meilleure façon de procéder. Vous voudrez probablement créer un tableau.
Parce que vous auriez 10 types de la même chose comme vous en auriez
10 de la même. Il y aurait juste un type de structure.
Ainsi, une meilleure méthode pour gérer les 10
dates différentes implique la combinaison de deux fonctionnalités puissantes du langage de programmation c, des
structures et des tableaux.
Vous pouvez les utiliser ensemble pour le rendre encore plus puissant.
Il est donc parfaitement valide de définir un tableau de
structures Le concept d'un tableau de structures est très puissant et important en c, alors faites très attention.
Déclarer un tableau de structures équivaut à déclarer tout autre type de tableau.
Vous spécifiez le type, il se trouve que c'est un type de structure.
Donc, si vous voulez créer un tableau de structures nommées
date, vous diriez struct date et
ensuite le nom de la variable, puis vous utilisez les crochets,
tout comme vous utilisez les crochets pour d'autres tableaux, vous devez spécifier la taille.
Donc, dans ce cas, si nous créons 10 instances ou 10 éléments du type struct
date, nous dirions 10 à l'intérieur de ces crochets pour le signe.
Cela définirait donc un tableau appelé mes dates, qui se compose de 10 éléments.
Chaque élément à l'intérieur du tableau est défini par une date struct de
type bf, qui contient trois membres.
Donc, essentiellement, vous stockez 30 ensembles de
données différents, 30 éléments de données différents.
Pour identifier les membres d'un tableau de structures, vous
appliquez la même règle que vous utilisez pour les structures individuelles.
Vous classez le nom de la structure avec l'opérateur point, puis avec le nom du membre.
Référencer un élément de structure particulier à l'intérieur du tableau est assez naturel.
Pour définir la deuxième date dans le tableau mes dates au 8 août 1986, tout ce que
vous avez à faire est de spécifier le nom du tableau,
mes dates et vous spécifiez l'index. Nous précisons ici la deuxième date.
N'oubliez pas que les tableaux sont basés sur 0. Nous disons donc 1, sous-1.
Et puis si nous voulons accéder aux éléments de cet élément de
tableau ou aux membres de cette structure pour cet élément, nous disons le mois de point.
Cela va donc nous donner le deuxième élément du tableau mes dates.
La valeur du mois pour ce type de structure, et ici nous allons lui attribuer la valeur 8.
et puis si nous voulons accéder au jour, nous allons également attribuer
le jour 8 car c'est le 8 août. Et puis enfin, pour l'année, nous dirions que
l'année du point est égale à 1986.
C'est ainsi que vous pouvez attribuer au deuxième élément du tableau mes dates,
les trois variables différentes car il est de type struct, date struct.
Vous devriez remarquer que ce n'est vraiment pas différent.
La seule différence ici est que vous avez un point. Normalement, vous diriez simplement mes dates inférieures à
1 et ce serait tout parce que vous ne pouvez attribuer qu'une seule variable en fonction
du type de ce tableau.
Mais dans ce cas, vous pouvez dire sub-1 avec trois variables différentes car ce
sont les trois éléments à l'intérieur de la structure.
Initialisation d'un tableau de structures.
L'initialisation de tableaux contenant des structures est similaire à l'initialisation
de tableaux multidimensionnels.
Rappelez-vous, avec les tableaux multidimensionnels, nous suivrions la syntaxe
spécifique avec des accolades à l'extérieur, puis des accolades à l'intérieur représentant chaque ligne.
Les accolades à l'intérieur étaient en fait facultatives, mais
cela le rendait beaucoup plus lisible. Et donc j'aime suivre cette convention.
Dans cet exemple, nous créons un mes dates de type structure date, il
va être de taille 5. Et puis nous allons initialiser uniquement les trois premiers éléments.
Tout comme un tableau multidimensionnel, nous avons
ces accolades à l'intérieur. Et donc le premier élément du tableau mes dates
qui est un index inférieur à zéro. Nous allons dire que
le mois est 12, la date est 10 et l'année 1975.
Et puis nous allons faire la même chose pour le premier élément. Nous allons dire 12 30 1980.
Et pour le troisième élément, nous allons dire 11 15 2005.
Et comme nous n'avons pas fourni les deux autres
éléments dans le tableau my dates, ceux-ci ne seront rien initialisés.
Cela fixera donc les trois premières dates.
Dans le tableau ma date au 12
10 1975, 12 30 1980 et 11 15 2005.
Les périodes intérieures des accolades sont facultatives, tout comme dans une zone multidimensionnelle, elles sont également facultatives.
Mais encore une fois, il est plus facile à lire, plus facile à suivre avec ces accolades
internes, je suivrais cette convention.
Donc, vous pouvez le faire si vous voulez
vous débarrasser des accolades, mais c'est un peu plus difficile à suivre car
maintenant vous n'avez plus que des virgules, séparées par des virgules ou des éléments séparés par des virgules
et cela peut devenir très déroutant si vous en faites beaucoup de celles.
Vous devez mapper cela correctement, disons que je suis dans le quatrième
quatrième élément pour ma quatrième virgule, d'accord, ça va être
le deuxième élément du tableau, c'est plus difficile à suivre, alors utilisez ces accolades à l'intérieur.
Si vous souhaitez initialiser uniquement le troisième élément du tableau à une valeur spécifiée,
vous pouvez spécifier mes dates inférieures à 5.
Vous créez toujours le tableau ici.
Vous déclarez toujours la variable et définissez la taille sur cinq.
Mais à l'intérieur des accolades,
vous dites deux crochets intérieurs et
vous allez initialiser 2 à 12 10 1975.
Ainsi, vous verrez les crochets qui représentent l'élément que vous souhaitez initialiser, puis
l'opérateur d'affectation est égal à, puis à l'intérieur des accolades, vous initialisez
le mois, le jour et l'année pour les éléments à
l'intérieur de la structure.
Ainsi, vous pouvez également spécifier exactement l'élément que vous souhaitez initialiser.
Si vous souhaitez simplement définir le mois et le jour du deuxième élément du tableau mes dates sur 12 et 30, vous
pouvez faire quelque chose de très similaire.
Vous n'avez qu'à faire une virgule pour séparer chaque attribut.
Vous ne voulez pas vraiment définir l'année pour pouvoir utiliser ces accolades.
Vous pouvez dire que le mois du point
est égal à 12 sous-1 jour du point égal à 30.
Et encore une fois, cette syntaxe ressemble beaucoup à l'initialisation
des variables struct ailleurs.
La seule différence ici est que c'est un tableau, vous devez spécifier l'index du
tableau, mais une syntaxe similaire.
Qu'en est-il des structures contenant des tableaux.
Éléments à l'intérieur de la structure qui contiennent un tableau.
Il est également possible de rechercher des structures contenant un tableau en tant que membre.
Cela pourrait être utile.
C'est l'utilisation la plus courante est de mettre en place un tableau de caractères à l'intérieur d'une structure.
Nous utilisons assez bien les tableaux de caractères pour les chaînes.
Il serait donc très courant qu'une structure contienne essentiellement une chaîne, un
tableau de caractères.
Supposons donc que vous souhaitiez définir une structure
appelée mois qui contient comme membres, le nombre de jours dans le
mois ainsi qu'une abréviation à trois caractères pour le nom du mois.
Eh bien, c'est là que nous pourrions utiliser un tableau de caractères. Nous pourrions dire struct mois.
Nous savons définir une structure. Encore une fois, cela n'alloue aucune mémoire.
C'est ainsi que la structure est définie. Ce sont les éléments qui y sont contenus.
Ici, nous utilisons le mot-clé struct. Nous disons le nom de la structure. Le nom de la balise est
month, puis nous avons cette accolade gauche, puis nous spécifions les éléments.
Nous avons un élément qui est entier représente le nombre de jours où nous avons un point-virgule à la fin.
Et puis nous avons un tableau de caractères, nom de
caractère sous-trois, donc taille de trois car il a trois caractères.
Et puis nous terminons la structure avec l'accolade droite dans le point-virgule.
Mais rappelez-vous, les personnages sont des tableaux et ils sont étroitement liés aux pointeurs aussi nous le savons maintenant.
Mais vous pouvez facilement avoir des structures contenant des tableaux en les plaçant
simplement en tant qu'élément membre.
Et donc cela met en place une structure de mois
qui contient un membre entier appelé nombre de jours et un membre de caractère appelé nom appelé.
Le nom du membre est en fait un tableau de trois caractères, assez simple.
Alors, comment y accédez-vous réellement. Eh bien, vous devez d'abord créer votre variable.
La variable créerait de la mémoire pour les éléments à l'intérieur de la structure, puis vous voudriez
simplement définir les champs appropriés à l'intérieur de la variable 8 mois, le tableau
de caractères parce que c'était son nom. Nous avions le nom et
le nombre de jours. Ici ça s'appelle nom et l'exemple ça s'appelle un mois.
Eh bien, un mois est le type de variable, puis le nom est le type d'élément, donc c'est correct.
Nous créons donc ici une structure. C'est de type mois.
C'est le nom de la variable est un mois. Nous ne l'initialisons avec rien.
Nous avons immédiatement défini un nombre de jours par mois sur 31.
Nous utilisons cet opérateur de sélection de membre point.
Et puis nous voulons assigner au tableau de caractères, nous ne
pouvons pas assigner directement à un tableau de caractères.
Vous auriez à faire une comparaison de str ou quelque chose du genre si vous vouliez tout signer. Et vous pouvez le faire.
Vous n'êtes pas obligé d'utiliser ces index. Vous pouvez dire str
copier une virgule de nom de point du mois,
puis j a n entre guillemets ou vous pouvez le faire en accédant
aux éléments du tableau via l'index.
Ici, nous disons un nom de point du mois car nous devons accéder à
la variable membre de nom ou à l'élément membre.
Et puis à l'intérieur des crochets, nous spécifions l'index du tableau.
Nous le trouverons signant le premier caractère dans le tableau de j, deuxième un a, troisième un n.
Vous verriez cette syntaxe si vous faisiez des entiers, des
doubles et des flottants. Normalement, lorsque vous avez un
tableau de caractères, vous utiliserez la fonction de copie str stir et assignerez tout avec des guillemets doubles.
Vous pouvez également initialiser la variable avec les mêmes valeurs en faisant quelque
chose de très similaire lorsque vous déclarez la variable. Juste à l'intérieur des accolades,
car il s'agit d'un tableau, vous pouvez avoir
des accolades intérieures, puis les guillemets simples autour de chaque caractère.
Et vous pouvez configurer des structures de 12 mois dans un tableau pour représenter chaque mois de l'année.
Nous pouvons donc maintenant créer
une variable de mois, qui est un tableau de taille 12 de type struct month,
et qui peut représenter chaque mois.
Et puis pour chaque mois, on peut passer le nombre de jours puis les abréviations pour le mois.
Donc, utiliser ces deux puissants concepts de tableaux
et de structures est très, très utile.
Les structures peuvent avoir de nombreux éléments,
donc elles peuvent en fait être une structure de tableaux et les éléments
à l'intérieur de la structure peuvent être un tableau.
Et nous allons ensuite parler de la façon dont nous pouvons utiliser des structures pour contenir d'autres éléments comme des pointeurs.
Mais vous verrez que les structures peuvent stocker n'importe quel type de
données dans de nombreux types de données différents.
Et c'est très, très utile à utiliser avec le concept de tableau.
J'espère que cela a été utile. Encore une fois, nous aurons un défi
pour démontrer certains de ces concepts et apporter des exemples à
l'intérieur de blocs de code plus tard. Merci.