Maison > développement back-end > C++ > le corps du texte

Expliquer le concept d'accès aux tableaux non initialisés en langage C

王林
Libérer: 2023-09-01 20:53:05
avant
1113 Les gens l'ont consulté

Expliquer le concept daccès aux tableaux non initialisés en langage C

Question

En langage C, si un tableau non initialisé est utilisé, le programme sera-t-il exécuté ?

Solution

  • Si nous utilisons un tableau non initialisé, le compilateur ne générera aucune erreur de compilation et d'exécution.

  • Si le tableau n'est pas initialisé, vous risquez d'obtenir des résultats imprévisibles.

  • Par conséquent, il est préférable pour nous de toujours initialiser les éléments du tableau avec des valeurs par défaut.

Exemple de programme

Ce qui suit est un programme C pour accéder à un tableau non initialisé -

Démonstration en direct

#include <stdio.h>
int main(void){
   int a[4];
   int b[4] = {1};
   int c[4] = {1,2,3,4};
   int i; //for loop counter
   //printing all alements of all arrays
   printf("</p><p>Array a:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i,a[i]);
   printf("</p><p>Array b:</p><p>");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d</p><p>",i,b[i]);
   printf("</p><p>Array c:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i, c[i]);
   return 0;
}
Copier après la connexion

Sortie

Lorsque le programme ci-dessus est exécuté, les résultats suivants sont produits -

Array a:
arr[0]: 4195872
arr[1]: 0
arr[2]: 4195408
arr[3]: 0

Array b:
arr[0]: 1
arr[1]: 0
arr[2]: 0
arr[3]: 0

Array c:
arr[0]: 1
arr[1]: 2
arr[2]: 3
arr[3]: 4
Copier après la connexion

Remarque

Si nous n'avons pas initialisé le tableau, par défaut, il imprime les valeurs inutiles et n'affiche jamais d'erreurs.

Considérez un autre programme C pour accéder à un tableau non initialisé -

Exemple

Démonstration en direct

#include <stdio.h>
int main(void){
   int A[4];
   int B[4] ;
   int C[4] = {1,2};
   int i; //for loop counter
   //printing all alements of all arrays
   printf("</p><p>Array a:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i,A[i]);
   printf("</p><p>Array b:</p><p>");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d</p><p>",i,B[i]);
   printf("</p><p>Array c:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i, C[i]);
   return 0;
}
Copier après la connexion

Sortie

Lorsque le programme ci-dessus est exécuté, les résultats suivants sont produits -

Array a:
arr[0]: 4195856
arr[1]: 0
arr[2]: 4195408
arr[3]: 0

Array b:
arr[0]: -915120393
arr[1]: 32767
arr[2]: 0
arr[3]: 0

Array c:
arr[0]: 1
arr[1]: 2
arr[2]: 0
arr[3]: 0
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