Bonjour et bienvenue.
Dans cette conférence, je veux parler à propos de l'initialisation d'un tableau.
Nous savons utiliser un tableau, nous savons comment créer un tableau.
Mais spécifiquement, que faire si tu veux pour attribuer des valeurs initiales spécifiques au
tableau, comment faites-vous cela?
Vous voudrez donc attribuer l'initiale les valeurs des éléments de votre tableau la
plupart du temps.
La raison pour laquelle tu veux attribuer des valeurs initiales à
un tableau ou même à des variables est parce que cela permet de détecter
plus facilement les problèmes.
Lorsque vous n'avez pas de données initiales et vous essayez de faire quelque chose, vous pouvez
causer des problèmes dans votre programme.
L'initialisation est donc un très bon chose et vous voulez toujours le faire.
Et en utilisant un tableau, il y a beaucoup, beaucoup d'éléments dans le tableau.
Et donc il y a une manière spécifique vous pouvez initialiser ces éléments.
Il y a différent syntaxe que vous pouvez utiliser.
Mais l'initialisation est une bonne chose et vous voulez toujours le faire.
Je voulais parler rapidement de la façon dont vous pouvez créer un tableau car il
existe différentes manières de le faire.
Donc, tout comme vous pouvez attribuer l'initiale valeurs aux variables, lorsqu'elles
sont déclarées, vous pouvez également affecter valeurs initiales des
éléments d'un tableau, lorsqu'il est déclaré.
Pour initialiser les valeurs d'un tableau, vous fournissez simplement les valeurs dans une liste.
La liste est séparée par des virgules et la liste entière est
enfermée dans une paire d'accolades.
Cela ressemble à quelque chose comme ça.
Ici, nous créons un tableau nommé compteurs.
Il est de type int, il comporte 5 éléments.
Et puis ce que nous faisons, c'est nous ont les accolades
et nous n'utilisons aucun index ici.
Vous remarquerez que nous avons juste nombres séparés par des virgules.
Ce que cela fait, c'est que tous les 5 éléments du tableau des compteurs
à 0, chacun des éléments est à 0.
Si nous avons un autre tableau et que nous nommons ce tableau entiers et il est
également de taille 5 et ensuite nous avons dans notre accolades après
l'opérateur d'affectation 0 virgule 1 virgule 2 virgule 3 virgule 4, qu'est-ce que cela fait?
Il attribue un entier au premier élément entiers tableau à 0,
le deuxième élément à 1, le troisième élément à 2, le quatrième élément à 3 et
le cinquième élément à 4.
C'est une belle syntaxe où vous pouvez initialisez immédiatement le tableau lorsque vous
le déclarez en fournissant simplement les nombres séparés par des virgules entre crochets
et vous voulez le faire.
Il n'est pas non plus nécessaire de complètement initialisez l'ensemble du tableau.
Donc dans ces 2 précédents exemples, nous avons initialisé les
5 éléments d'un tableau de taille 5.
Et si tu veux seulement initialiser certaines des valeurs?
Si vous fournissez des valeurs initiales qui ne sont pas égaux au nombre de la taille du tableau, alors le les valeurs restantes sont définies sur 0.
Donc si vous faites quelque chose comme c'est là que vous
avez un tableau appelé exemple de données de type flux, il contient 500 éléments.
Mais dans les accolades, tout vous voyez voici nos 3 éléments.
Ce que cela va faire est ça va initialiser
les 3 premières valeurs de l'échantillon tableau de données à 100 300 500. 5.
Et puis les 5497 restants les éléments vont être 0.
Donc tu n'as pas à tout préciser.
Il y a aussi ce concept d'un initialiseur désigné.
Cela a été introduit je crois en C99.
C'est une jolie petite fonctionnalité où vous peut sélectionner et choisir les éléments
que vous souhaitez initialiser.
Je pense que dans C99, ils l'ont ajouté et puis en C11, ils l'ont rendu facultatif.
Donc, selon quel compilateur vous avez, vous pouvez ou non être en
mesure de le faire.
Mais je veux le mentionner parce que c'est assez courant.
Certains compilateurs n'autorisent pas vous de faire cela après C99.
Mais c'est cool parce que tu peux en fait, il suffit de choisir.
Ainsi, vous pouvez enfermer un élément nombre entre crochets, puis spécifiez les éléments du tableau
qui peut être initialisé et vous pouvez le faire
dans n'importe quel ordre.
Voici donc un exemple.
Encore une fois, nous avons notre exemple de tableau de données.
C'est du type float.
Ce sera une taille de 500.
Mais ici à l'intérieur de nos bouclés accolades, nous avons des index supplémentaires.
Nous avons nos parenthèses en 2, dit parenthèses 2 sous-2 égale 500. 5, sub-1 vaut
300. 0 et sous-0 est égal à 100. 0.
Ils sont séparés par des virgules.
Tout ce que cela fait est de spécifier la même chose que nous avions dans
l'exemple précédent, mais c'est le faire dans un ordre différent.
Mais tu vas toujours avoir des éléments 0 ou le premier élément égal
à 100, le second élément égal à 300 et le troisième album égal
à 500. 5.
Mais nous spécifions le quel index pour initialiser juste
entre les accolades.
Un autre exemple ici, nous avons un int tableau appelé arr, il est de taille 6.
Et quand nous le déclarons, nous sommes initialiser le cinquième
élément qui est le dernier élément à 212, tous les éléments seront à 0.
Voici donc un exemple de initialisation où vous venez de déclarer le
nom de votre tableau et vous fournissez de nombreux nombres différents.
Dans cet exemple, nous déclarons un tableau et il
stockera tous les jours de chaque mois.
Et donc quand nous traversons ça tableau et nous
l'imprimons, ce qui est très courant, vous utilisez généralement boucles pour imprimer des éléments dans un
tableau ou au moins les parcourir.
Ce que nous faisons ici, c'est que nous va juste imprimer chaque mois
et combien de jours il a.
Alors passons en revue cela dans le code blocs pour vous montrer la sortie.
Voici donc notre exemple.
Nous avons des jours et des mois et nous initialisons le tableau.
Le premier élément à être 31, 28 suivants, 31 suivants.
Vous remarquez également à la ligne 10, nous sommes en utilisant un define pour créer une constante.
Et au fait en c, vous pouvez aussi utilisez un mot-clé constant, dont nous parlerons et
d'autres choses, c'est une autre façon de créer des constantes.
Mais maintenant, nous parlons juste sur les tableaux
et leur initialisation, très facile à faire, séparés par des virgules à l'intérieur des accolades.
Alors qu'est-ce que cela va afficher
va-t-il passer par le tableau et il va regarder index plus 1 puis index des jours.
Donc ça va dire le mois 1 a combien de jours en fonction des
valeurs.
Nous accédons donc à l'index par le nom du tableau puis la valeur
de l'indice, l'index value et nous utilisons un tableau.
C'est donc une variable qui change à chaque itération.
Nous essayons donc d'exécuter ceci.
La sortie que vous allez voir si le premier mois a 31 jours, le mois 2 a 28 jours
en quelque sorte Janvier Février Mars Avril, mais il passe simplement par
le tableau et imprime les jours.
Cela prouve donc que le l'initialisation fonctionne.
Et encore, tu voudras pour initialiser vos données.
Maintenant parlons d'un autre exemple et parlez de la répétition
des éléments d'initialisation.
Alors voici un autre exemple, mais dans cet exemple, nous
allons utiliser un initialiseur désigné.
Nous allons spécifier l'exact éléments que nous voulons initialiser.
Donc, la ligne principale que vous devriez remarque ici est
celui qui dit en jours et en mois nous faisons notre initialisation.
Vous remarquerez à l'intérieur du bouclé
crochets que le premier élément obtient 31, le second 28, mais il y a ensuite
quelque chose entre parenthèses qui dit 4, il va avoir la valeur 31.
Ensuite, nous avons une virgule, l'élément 5 va obtenir 30,
l'élément 6 va obtenir 31
Et puis nous avons 1.
Cela signifie que nous allons maintenant écraser le 28, et nous allons en fait
mettre un 29, le mettre comme 29.
C'est donc un peu redondant ici.
Nous n'avons pas vraiment besoin de faire ça,
mais vous supprimeriez vraiment le sous-1 car 31 et 28, sub-1 est déjà attribué ici.
Mais on dirait que nous disons sub-1 peut également être la valeur 29.
Il s'agit donc simplement d'utiliser le initialiseurs désignés.
Et si on veut répétez la même valeur.
Maintenant en c, tu peux toujours initialisez le tableau entier de
la même valeur si vous spécifiez 0.
Vous pouvez toujours initialiser c'est comme le paramètre nul.
Mais à part ça, c'est pas fournir des mécanismes de raccourci pour l'initialisation
de la baie éléments, du moins pas dans C89.
Vous pouvez voir dans C11, encore une fois, où vous peut initialiser la même valeur à l'ensemble
du tableau en utilisant simplement les crochets sans indice juste le nombre.
Mais en ce moment dans C89 et C99, il y a aucun moyen de spécifier un nombre de répétitions.
Il n'y a aucun moyen de dire tous les éléments de ce rayon devrait être de 55, par exemple.
Donc, si c'était souhaité au départ définir toutes les 500 valeurs
des données d'échantillon sur 1, toutes les 500 auraient à être explicitement attribué ce qui serait une
grosse douleur dans le cul.
Alors ce que tu finiras par faire c'est que tu mettez-les simplement dans une boucle.
Le moyen le plus simple d'itérer à travers un tableau, utilisez une boucle.
Eh bien, voici un exemple rapide de comment vous pouvez initialiser tous les
éléments à la même valeur.
Dans ce cas cependant, nous sommes initialiser les
premiers éléments à 0 1 4 9 et 16.
Donc c'est vraiment juste l'initialisation tous les éléments restants à une valeur.
Essentiellement le 6e élément de la 10e élément utilisant les index 5 à 9.
C'est donc ce que fait cette boucle for.
La première boucle for dit que nous allons initialiser les éléments de 5
à 9 pour être I fois I.
Et puis le second pour boucle ici, il devrait être
en retrait, c'est plus difficile à lire.
La deuxième boucle for est en fait en parcourant tout
le tableau et en affichant simplement les données à vous montre que les 5 dernières
valeurs ont été réellement initialisées.
Alors chaque fois que tu veux répéter la même valeur ou initialiser à
des valeurs différentes, utilisez simplement une boucle.
Là encore, l'initialisation est importante.
Vous voudrez initialiser, donc assurez-vous que cette syntaxe est une seconde nature pour vous
car nous allons utiliser un peu des tableaux dans c.