Introduction aux tableaux en programmation C

Le tableau est un type de structure de données qui est utilisé pour stocker des données homogènes dans des emplacements de mémoire contigus.

Ici, index fait référence à l'emplacement d'un élément dans le tableau. Imaginons si A (L) est le nom du tableau où «A» est le nom de la variable et «L» est la longueur du tableau, c'est-à-dire le nombre d'éléments présents dans le tableau.

Alors A (i) représente l'élément à cette «i + 1» ème position dans le tableau. Par exemple:

A (6) = 72 signifie élément à 6 + 1 ème emplacement du tableau.

Besoin de baie

Il permet de représenter un grand nombre d'éléments à l'aide d'une seule variable. Il rend également l'accès à l'élément plus rapide plus facile à stocker dans l'emplacement mémoire en utilisant l'index du tableau qui représente l'emplacement d'un élément dans le tableau.

Accès aux éléments du tableau

L'accès à n'importe quel élément du tableau est beaucoup plus facile et peut se faire en complexité O (1)

Les index d'un tableau commencent de 0 à -1, 0 indiquent le premier élément du tableau et -1 indique le dernier élément du tableau. De même, -2 indique le dernier mais un élément du tableau.

Par exemple:

Soit A un tableau de longueur 7 et il faut accéder à l'élément de valeur 94 alors il doit utiliser A (3).

Syntaxe

printf ("% d", A (3)) - Cela affichera 94 où 3 est l'index auquel nous devons accéder et a est la variable du tableau.

Déclaration de tableau en C

En C, le tableau doit être déclaré correctement avant de l'utiliser avec son nom et sa longueur. Il existe trois syntaxes dans lesquelles nous pouvons déclarer des tableaux dans un programme en courant alternatif

Syntaxe 1

int A (7) = (21, 56, 32, 52, 63, 12, 48) - Déclarer la longueur et les éléments du tableau

Programme C

#include
int main(
int a(7) = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Production:

Syntaxe 2

int A () = (21, 56, 32, 52, 63, 12, 48) - Déclarer la longueur des éléments du tableau

Programme C

#include
int main(
int a() = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Production:

Syntaxe 3

int A (7); - Déclaration de la longueur du tableau uniquement.

Programme C

#include
int main(
int a(7) ;
int i;
printf(“Please enter the array elements”);
for(i=0;i<7;i++)(
scanf(“%d\n”, &a(i));
)
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Production:

Syntaxe 4

int A (7) = (0); - Déclaration de la longueur du tableau et de l'élément lorsqu'un élément est le même à toutes les positions.

Programme C

#include
int main(
int a(7)=(0) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

Production:

Syntaxe 5

Déclarer la longueur du tableau et également la valeur des éléments où toutes les valeurs sont identiques

Cas 1 - int a (3) = ((0..1) = 3) -

Cas 2 - int a (3) = (0); -

Syntaxe 6

int * a; - Déclarer un tableau en tant que pointeur vers l'emplacement des éléments.

Aucun index hors vérification

Dans le cas où l'on tente d'accéder à l'élément en dehors des limites du tableau, aucune erreur n'est affichée par le compilateur à la place, il génère un avertissement. Et donne également une sortie inattendue.

Exemple

a (4) = (2, 3, 4, 5);

Si nous écrivons printf (a (4));

La sortie sera 225263545 - inattendue

En outre, en C, le compilateur ne commet pas d'erreur pour initialiser un tableau avec plus d'éléments numériques que la longueur spécifiée dans la déclaration. Par exemple, le programme ci-dessous n'affiche pas une erreur à la place.

Programme C

#include
int main(
int arr(2)=(10, 22, 56, 32, 45, 89) ;
int i;
printf(“Elements of array are”);
for(i=0;i<2;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)

Production:

Récupération des éléments dans le tableau

La récupération des éléments d'un tableau et leur impression est une tâche très simple. Il suffit d'une boucle pour imprimer n éléments d'un tableau. la complexité d'un tel programme est donc O (n).

Par exemple, int a (7) = (23, 56, 8, 944, 58, 24, 5);

Le programme d'impression des éléments d'un tableau est

Programme C

#include
int main(
int arr(7)=(23, 56, 8, 944, 58, 24, 5) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)

Production:

Tableau multidimensionnel

Le langage C permet également des tableaux multidimensionnels, c'est-à-dire des tableaux qui peuvent contenir des éléments dans des lignes ainsi que des colonnes.

Déclaration

Lors de la déclaration du tableau multidimensionnel, il faut spécifier la longueur de toutes les dimensions, sauf celle de gauche, car elle est facultative.

Exemple

La déclaration du tableau de la manière ci-dessous entraînera une erreur car les dimensions autres que la plus à gauche ne sont pas spécifiées.

Int a () () (2) = (

((1, 2), (3, 4)),

((5, 6), (7, 8))

)

Exemple

Voici une des syntaxes correctes pour la déclaration d'un tableau multidimensionnel en C.

Int a () (3) = (

(52, 56, 86), (44, 6, 21)

)

Passer un tableau en tant que paramètre dans la fonction

Parfois, lors de la création d'une fonction, nous exigeons que la fonction utilise un certain nombre de variables qu'elle doit extraire de différentes fonctions. Cette fois, ces variables doivent être passées en paramètre à cet appel de fonction. Mais finalement, à mesure que le nombre de variables augmente, nous devons utiliser un tableau pour transmettre la variable ou, au cas où certaines opérations doivent être effectuées sur les tableaux, il faut également que survienne un tableau complet comme paramètre dans une fonction. Pour passer un tableau en tant que variable à la fonction:

1. Appel par valeur

Dans ce type d'appel de méthode, les valeurs réelles du tableau sont copiées dans le paramètre formel où les deux sont stockées à un emplacement différent, donc toute modification apportée aux valeurs n'est pas reflétée dans la fonction.

Programme C

#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
for (int x=0; x<10; x++)
(
show(arr(x));//value of array //elements are passed as an argument
)
return 0;
)

Production:

2. Appel par référence

Lors de l'appel d'une fonction au lieu de transmettre les valeurs réelles du tableau, la référence à la variable est passée en paramètre puis elle est appelée appel par référence.

Programme C

#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
for (int x=0; x<10; x++)
(
show(&arr(x));//reference of array //elements are passed as an argument
)
return 0;
)

Production:

3. Passer le tableau entier comme argument

Par exemple - Soit arr un tableau de 7 elements.disp est une fonction pour afficher les éléments d'un tableau qui prennent 2 arguments, d'abord qui pointe vers le premier emplacement du tableau et l'autre la longueur du tableau (var2). la fonction arr variable qui pointe vers l'emplacement du premier élément du tableau et la longueur c'est-à-dire 7 est passée.

Programme C

#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)
#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)

Production:

Allocation de mémoire de la baie

La représentation de la mémoire en langage C est considérée comme divisée en 5 sections comme indiqué ci-dessous: -

  1. Segment de texte
  2. Segment de données initialisé
  3. Segment de données non initialisé
  4. Empiler
  5. Tas

Les données, le tas et la pile sont les trois segments où les tableaux peuvent être alloués de la mémoire pour stocker ses éléments, de la même manière que les autres variables.

  1. Tableaux dynamiques: les tableaux dynamiques sont des tableaux qui nécessitent un emplacement mémoire à allouer lors de l'exécution. Pour ces types de tableaux, la mémoire est allouée à l'emplacement de la mémoire du tas.
  2. Tableaux globaux ou statiques: ce sont les types de tableaux qui sont alloués au moment de la compilation. Ainsi, la mémoire des segments de données est toujours allouée pour ce type de tableaux.
  3. Tableaux locaux: les tableaux qui sont initialisés dans une fonction ou un bloc sont appelés tableaux locaux. Ces types de tableaux obtiennent de la mémoire allouée sur le segment de pile.

Tableau de caractères

En C, les chaînes sont considérées comme un tableau unidimensionnel de caractères avec le caractère nul '\ 0' dans sa dernière position que le compilateur y ajoute automatiquement.

Par exemple, «j'adore coder» est considéré comme un tableau à une dimension en c de longueur 14, y compris le caractère «\ 0» à la fin.

Déclaration: Il y a 2 façons de déclarer et d'initialiser le tableau de caractères-

  1. char str (12) = "j'aime le code";
  2. char str (12) = ('I', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Ici, nous devons le terminer avec le caractère '\ 0' à la fin.
  3. Char ch (3) = 'modi' - Déclaration illégale

Prise d'entrée et de sortie

Tout en prenant l'entrée et en affichant la sortie en C pour le tableau de caractères '% c' peut être utilisé respectivement la fonction scanf () et printf ().

Lors de l'implémentation de la même chose pour les chaînes, «% s» peut être utilisé, mais arrête l'analyse sur l'occurrence du premier caractère d'espacement.

Programme C:

#include
#include
int main()
(
char str(20);
printf(“Enter a string”);
scanf(“%(^\n)”, &str);
printf(“%s”, str);
return 0;
)

Production:

Outre les fonctions printf et scanf, C fournit également des fonctions de chaîne telles que gets () et put () pour ignorer les espaces blancs de la chaîne lors de la numérisation et de l'impression.

Conclusion

Un tableau est un type de structure de données utilisé pour stocker les données homogènes dans un emplacement de mémoire contigu. Les tableaux en programmation sont utilisés comme représentation de différentes structures de données complexes telles qu'un arbre, un tas, etc. Le langage C permet des tableaux multidimensionnels pour tous les types de données primitifs. Les chaînes sont également représentées comme un tableau de caractères avec le caractère nul «\ 0» comme dernier caractère. Les tableaux en programmation permettent la récupération rapide et l'accès direct aux éléments du tableau à l'aide de l'index où l'élément est stocké.

Articles recommandés

Ceci est un guide des tableaux en programmation C. Ici, nous discutons de l'introduction, des besoins du tableau, ainsi que des fonctions de passage de tableau, notamment l'appel par valeur, l'appel par référence et le passage de l'ensemble du tableau comme argument. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Matrices 3D en C
  2. Meilleurs compilateurs C
  3. Modèles en programmation C
  4. Factorielle en C
  5. Guide des tableaux en C #
  6. Tableaux 3D en C ++
  7. Guide des tableaux en PHP
  8. C Multiplication de la matrice de programmation
  9. Fonctions de tableau PHP | Types | Exemples