Maison >développement back-end >C++ >Expliquer le concept d'accès aux tableaux non initialisés en langage C

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

王林
王林avant
2023-09-01 20:53:051145parcourir

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;
}

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

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;
}

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer