Maison > développement back-end > C++ > Initialiseur désigné en langage C

Initialiseur désigné en langage C

王林
Libérer: 2023-09-01 08:49:06
avant
917 Les gens l'ont consulté

Initialiseur désigné en langage C

Dans la norme C90, nous devons initialiser le tableau dans un ordre fixe, comme initialiser l'index à la position 0, 1, 2, etc. À partir de la norme C99, ils ont introduit une fonctionnalité d'initialisation désignée en C. Ici, nous pouvons initialiser des éléments dans un ordre aléatoire. L'initialisation peut être effectuée à l'aide d'index de tableau ou de membres de structure. Cette extension n'est pas implémentée dans GNU C++.

Si nous spécifions des index et entrons des valeurs, alors cela ressemblera à ceci -

int arr[6] = {[3] = 20, [5] = 40}; or
int arr[6] = {[3]20, [5]40};
Copier après la connexion

Cela équivaut à :

int arr[6] = {0, 0, 0, 20, 0, 40};
Copier après la connexion

Nous pouvons également mettre certaines plages d'éléments en utilisant la syntaxe suivante : [premier… dernier] = valeur .

int arr[6] = {[2 … 4] = 10};
Copier après la connexion

Cela équivaut à :

int arr[6] = {0, 0, 10, 10, 10, 0};
Copier après la connexion

Si la taille du tableau n'est pas définie, alors la taille peut être obtenue à partir de la position d'index maximale. Jetons un coup d'œil au code pour avoir une meilleure idée.

Exemple de code

#include <stdio.h>
int main() {
   int Array[] = {10, 20, 30, [3 ... 9] = 100, [10] = 65, 15, [80] = 50, [42] = 400 };
   int i;
   for (i = 0; i < 20; i++)
      printf("%d ", Array[i]);
      printf("</p><p>Array[%d] = %d</p><p>",80, Array[80]);
      printf("Array[%d] = %d</p><p>",42, Array[42]);
      printf("Size of this array: %ld</p><p>", sizeof(Array) / sizeof(Array[0]));
}
Copier après la connexion

Output

10 20 30 100 100 100 100 100 100 100 65 15 0 0 0 0 0 0 0 0
Array[80] = 50
Array[42] = 400
Size of this array: 81
Copier après la connexion

Cette initialisation spécifiée peut également être effectuée sur des objets de type structure ou union. Pour eux, on peut initialiser les variables en utilisant leurs noms dans n'importe quel ordre suivi d'un point (.) au début. Pour avoir une idée claire, vérifiez le code ci-dessous.

Exemple de code

#include <stdio.h>
struct myStruct {
   int x;
   float y;
   char z;
};
int main() {
   struct myStruct str1 = {.y = 2.324, .z = &#39;f&#39;, .x = 78};
   struct myStruct str2 = {.z = &#39;r&#39;};
   printf ("x = %d, y = %f, z = %c</p><p>", str1.x, str1.y, str1.z);
   printf ("z = %c</p><p>", str2.z);
}
Copier après la connexion

Sortie

x = 78, y = 2.324000, z = f
z = r
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal