Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Comprendre les Tableaux en Langage C
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Comprendre les Tableaux en Langage C

L'Équipe Alphorm Par L'Équipe Alphorm 18 janvier 2025
Partager
Partager

Les tableaux en langage C peuvent sembler complexes pour les débutants.

Sans une compréhension claire, manipuler les données efficacement devient difficile, ce qui peut entraîner des erreurs coûteuses.

Cet article décompose les concepts clés des tableaux en C, y compris leur déclaration, initialisation, et utilisation, pour vous guider dans leur maîtrise.

Table de matière
Introduction aux Tableaux en CDéclaration et Initialisation de Tableaux CTableaux Multidimensionnels en CPointeurs et Tableaux en CConclusion sur les Tableaux en CFAQConclusion

Formation Le langage C : Acquérir les fondamentaux

Développez votre expertise en C et ouvrez la voie à des projets passionnants.

Découvrir cette formation

Introduction aux Tableaux en C

Dans ce chapitre, nous allons explorer en détail les tableaux en langage C. Nous commencerons par définir ce qu’est un tableau et examinerons sa syntaxe, en mettant en lumière comment déclarer et initialiser des tableaux dans ce langage. Nous approfondirons également la manière dont les tableaux sont représentés en mémoire. Ensuite, nous aborderons l’utilisation de l’opérateur sizeof pour déterminer la taille des tableaux. Enfin, nous explorerons les tableaux multidimensionnels, en détaillant comment ils sont déclarés, initialisés et représentés.

Déclaration et Initialisation de Tableaux C

Définition : Les tableaux en langage C sont des suites de variables de même type, stockées de manière contiguë en mémoire.

Déclaration d'un Tableau :

La déclaration d’un tableau en langage C permet de préciser plusieurs éléments importants :

  • Le type des éléments :Cela définit le type de données que le tableau va contenir. Par exemple,int,float,char, etc.
  • Le nom du tableau :C’est l’identificateur du tableau que vous utiliserez pour référencer le tableau dans le code.
  • La taille du tableau :Cela spécifie le nombre d’éléments que le tableau peut contenir. Cette taille est définie entre crochets[ ]dans la déclaration. Par exemple,int tableau[10];déclare un tableau de 10 entiers.
  • Les qualificateurs(optionnels) :Vous pouvez utiliser des qualificateurs pour indiquer des propriétés spécifiques des éléments du tableau, commeconstpour rendre les éléments constants (non modifiables) ouvolatilepour indiquer que les éléments peuvent être modifiés de manière imprévisible, souvent en interaction avec du matériel.
  • La classe de mémorisation(optionnelle) :Vous pouvez également spécifier la classe de mémorisation des éléments du tableau, commestatic,extern,auto, ouregister. Cela détermine la durée de vie et la portée du tableau.

Exemple

Déclaration d’un tableau de 10 pointeurs vers entiers constant avec une durée de vie statique.

				
					
static const ungigned int *ad, x, t[10]

				
			

Déclaration d’un tableau de 5 entiers constants.

				
					
const  int t[5]

				
			

Déclaration d’un tableau de 4 entiers.

				
					
int tab[4];

				
			

Initialisation d'un Tableau :

Les éléments du tableau sont initialisés lors de la déclaration. L’indice des tableaux commence à 0.

				
					
int tab[4] = {14, 41, 123, 9};

				
			

où

				
					
int tab[0] = 14;
int tab[1] = 41;
int tab[2] = 123;
int tab[3] = 9;

				
			

Représentation en Mémoire

Un tableau est stocké en mémoire comme une suite continue de variables. Par exemple, si un int occupe 4 octets, un tableau de 4 entiers occupera 16 octets en mémoire.

  • Illustration :
Adresse
Valeur
0x2500
14
0x2504
41
0x2508
123
0x250C
9

Les adresses des éléments successifs d’un tableau augmentent par la taille du type de données (4 octets pour un int).

Tableau C avec valeurs et adresses mémoire

L'Opérateur sizeof

L’opérateur sizeof retourne la taille d’un tableau en octets, pas en éléments. Par exemple :

				
					
int tab[4] = {1, 2, 3, 4};

				
			
  • Exemple d’exécution du code :
Affichage de la taille d'un tableau en C

Pour obtenir le nombre d’éléments dans le tableau, divisez la taille totale par la taille d’un élément :

				
					
size_t n = sizeof(tab) / sizeof(tab[0]);
printf("Nombre d'éléments : %zu\n", n);

				
			
  • Exemple d’exécution du code :
Code C affichant le nombre d'éléments d'un tableau

Tableaux Multidimensionnels en C

Définition : Un tableau à deux dimensions est essentiellement un tableau de tableaux. Il peut être visualisé comme une matrice ou une grille composée de lignes et de colonnes. Par exemple, un tableau de dimensions 4×3 a 4 lignes et 3 colonnes, et chaque élément de ce tableau peut être accédé en utilisant deux indices : un pour la ligne et un pour la colonne.

Déclaration

La déclaration d’un tableau 2D en C se fait en spécifiant deux dimensions entre crochets. Voici la syntaxe générale :

				
					
type nom_du_tableau[dim1][dim2];

				
			

où type est le type des éléments du tableau, dim1 est le nombre de lignes et dim2 est le nombre de colonnes. Par exemple :

				
					
int tab[4][3];

				
			

Cela déclare un tableau de 4 lignes et 3 colonnes d’entiers.

Représentation en Mémoire

En mémoire, les tableaux 2D sont stockés de manière contiguë, comme une séquence linéaire d’éléments. Chaque ligne du tableau est stockée l’une après l’autre. Par exemple, pour un tableau de 4×3, les éléments seront stockés comme suit :

				
					
Ligne 0 : élément0, élément1, élément2 Ligne 1 : élément3, élément4, élément5 Ligne 2 : élément6, élément7, élément8 Ligne 3 : élément9, élément10, élément11

				
			

Initialisation

Les tableaux 2D peuvent être initialisés à l’aide d’accolades. Voici un exemple :

				
					
int tab[2][3] = {{1, 2, 3}, {4, 5, 6}};

				
			

Dans cet exemple : tab est un tableau de 2 lignes et 3 colonnes avec des valeurs spécifiques attribuées à chaque élément.

Accès aux Éléments

Les éléments d’un tableau 2D sont accessibles en utilisant deux indices, l’un pour la ligne et l’autre pour la colonne :

				
					
int valeur = tab[1][2]; // Accède à l'élément de la 2ème ligne et 3ème colonne

				
			
  • Exemple d’exécution du code :
Exemple de tableau C avec accès élément et printf

Exemple de Code

Ce programme en C montre l’initialisation et l’affichage des éléments d’un tableau bidimensionnel (2D) de 2 lignes et 3 colonnes, ainsi que leurs adresses en mémoire. Le tableau tab2D est initialisé avec deux lignes : {1, 2, 3} et {4, 5, 6}. À l’aide de deux boucles imbriquées, le programme parcourt chaque élément du tableau, où i représente l’indice de la ligne et j celui de la colonne. Pour chaque élément, la valeur ainsi que son adresse mémoire sont affichées grâce à l’instruction printf. Cette approche permet de visualiser la structure des tableaux en mémoire et comment les éléments sont disposés linéairement en mémoire.

				
					
#include <stdio.h>
int main() {
  int tab2D[2][3] = {{1, 2, 3}, {4, 5, 6}};
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
      printf("tab2D[%d][%d] = %d, Adresse : %d\n", i, j, tab2D[i][j],
             &tab2D[i][j]);
    }
  }
  return 0;
}

				
			
  • Exemple d’exécution du code :
Code en C pour tableaux 2D avec adresses mémoire

Pointeurs et Tableaux en C

Ce programme en C illustre l’utilisation des pointeurs avec des tableaux multidimensionnels.

				
					
#include <stdio.h>
int main() {
  int tab2D[2][3] = {{1, 2, 3}, {4, 5, 6}};
  // Pointeur vers le premier élément du tableau bidimensionnel
  int(*ptrTab2D)[3] = tab2D; // pointeur vers un tableau de 3 entiers
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
      printf("tab2D[%d][%d] = %d, Adresse : %p\n", i, j, *(*(ptrTab2D + i) + j),
             (void *)(&(*(*(ptrTab2D + i) + j))));
    }
  }
  return 0;
}

				
			
  • Exemple d’exécution du code :
Exemple de code de tableau bidimensionnel en C

Explication détaillée du code :

Déclaration et Initialisation du Tableau Bidimensionnel :

				
					
int tab2D[2][3] = {{1, 2, 3}, {4, 5, 6}};

				
			
  • Cette ligne déclare un tableau bidimensionnel nommé tab2D avec 2 lignes et 3 colonnes.
  • Il est initialisé avec les valeurs fournies :la première ligne contient 1, 2, 3 et la deuxième ligne contient 4, 5, 6.

Déclaration du Pointeur :

				
					
int (*ptrTab2D)[3] = tab2D; // pointeur vers un tableau de 3 entiers

				
			
  • Ici, ptrTab2D est un pointeur vers un tableau de 3 entiers.
  • En initialisant ptrTab2D avec tab2D, il pointe vers le premier tableau de 3 entiers (la première ligne du tableau bidimensionnel).

Parcours du Tableau Bidimensionnel :

  • Les boucles for imbriquées parcourent les lignes (i) et les colonnes (j) du tableau.
				
					
*(*(ptrTab2D + i) + j);

				
			
  • ptrTab2D + i déplace le pointeur vers la ligne i du tableau.
  • *(ptrTab2D + i) accède au tableau d’entiers de cette ligne.
  • *(*(ptrTab2D + i) + j) accède à l’élément spécifique à la colonne j de cette ligne.

Affichage des Valeurs et Adresses :

				
					
printf("tab2D[%d][%d] = %d, Adresse : %p\n", i, j, *(*(ptrTab2D + i) + j),
       (void *)(&(*(*(ptrTab2D + i) + j))));

				
			
  • Affiche l’élément actuel du tableau (tab2D[i][j]) ainsi que son adresse mémoire.
  • Le format %p est utilisé pour afficher l’adresse mémoire de l’élément, et le cast (void*) est fait pour s’assurer que l’adresse est correctement formatée pour l’affichage.

Conclusion sur les Tableaux en C

Ce chapitre a couvert les fondamentaux des tableaux en langage C, leur déclaration, initialisation, et représentation en mémoire. Nous avons également exploré les tableaux multidimensionnels et comment les manipuler en mémoire.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment déclarer un tableau en C ?
La déclaration d’un tableau en C nécessite spécifier le type des éléments, le nom du tableau et sa taille. Par exemple, int tableau[10]; déclare un tableau de 10 entiers. Vous pouvez également ajouter des qualificateurs comme const ou volatile pour spécifier des propriétés particulières, et définir la classe de mémorisation pour déterminer la portée et la durée de vie du tableau.
Comment initialiser un tableau en C ?
Initialiser un tableau en C se fait généralement lors de sa déclaration. Les éléments du tableau sont définis entre accolades. Par exemple, int tab[4] = {14, 41, 123, 9}; initialise un tableau de 4 entiers avec les valeurs 14, 41, 123 et 9. L’indexation commence à 0, ce qui signifie que tab[0] contient 14, tab[1] contient 41, etc.
Comment les tableaux sont-ils représentés en mémoire en C ?
En C, les tableaux sont stockés en mémoire de façon contiguë. Chaque élément du tableau est placé successivement en mémoire. Par exemple, un tableau d’entiers int tab[4] occupe 16 octets si un int occupe 4 octets. Les adresses des éléments augmentent par la taille du type de données, ce qui permet d’accéder directement aux éléments via leur index.
Quelle est l'utilité de l'opérateur sizeof en C ?
L’opérateur sizeof en C retourne la taille d’un tableau en octets, pas en éléments. Pour connaître le nombre d’éléments, divisez la taille totale par la taille d’un élément : size_t n = sizeof(tab) / sizeof(tab[0]);. Cela permet de gérer efficacement la mémoire en manipulant les tableaux.
Comment fonctionne un tableau multidimensionnel en C ?
Un tableau multidimensionnel en C est essentiellement un tableau de tableaux. Déclaré avec deux indices, il peut être visualisé comme une matrice. Par exemple, int tab[4][3]; déclare un tableau de 4 lignes et 3 colonnes. Les éléments sont accessibles en utilisant deux indices : un pour la ligne et un pour la colonne, facilitant leur manipulation.

Conclusion

Ce chapitre a couvert les fondamentaux des tableaux en C, leur déclaration, initialisation, et représentation en mémoire. Quels autres concepts du langage C souhaitez-vous explorer davantage ?

ÉTIQUETÉ : Langage C
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Comprendre les Tableaux en Langage C

© Alphorm - Tous droits réservés