|
Voici
comment on déclare un tableau de
5 variables
de type char,
dont on souhaite que le pointeur du premier élément ait
pour identificateur : MonPremierTableau.
char
MonPremierTableau [
5 ] ;
Suite
à cette déclaration le compilateur :
- reserve
de la mémoire pour 5 caractères
- crée
le pointeur MonPremierTableau
qu'il fait pointer sur le premier des caractères réservés.
A
ce stade, les 5 contenus sont aléatoires : il faudra les affecter.
Voir plus loin.
Le
pointeur MonPremierTableau
créé est une constante
!
En
effet, l'adresse du premier caractère a été choisie
en fonction des disponibilités de la mémoire par le compilateur.
Elle est désormais fixée et immuable.
D'
unemanière générale :
|
Déclaration
la plus générale d'un tableau à une dimension
:
|
type NomGeneriqueTableau
[ NombreElements
]];
type
:
type
commun à tous les éléments du tableau.
NomGeneriqueTableau
: pointeur sur le premier élément du tableau.
Le compilateur
attribue à cet identificateur une valeur constante .
NombreElements
: nombre
d'éléments du tableau, entier positif.
|
Nous
verrons plus loin les tableaux multidimensionnels
.
|
|
Voici
comment affecter des valeurs aux divers éléments du tableau
:
MonPremierTableau[0]
= 'S';
MonPremierTableau[1]
= 'A';
MonPremierTableau[2]
= 'L';
MonPremierTableau[3]
= 'U';
MonPremierTableau[4]
= 'T';
0,
1, 2, 3, 4 s'appellent des
index
Les
index d'un tableau de n éléments vont de 0 à (n -
1)
L'affectation
suivante : MonPremierTableau[5] = 'S' ; provoque
une erreur fatale (arrêt catastrophique de l'exécution du
programme) car on dépasse l'étendue du tableau : il faut
éviter çà.
Les
index d'un tableau peuvent
être exprimés sous forme d'une variable entière de
type
int ou long.
Pour l'exemple, nous déclarons une variable ' n ' qui servira d'index
:
|
//essai.c
#include
<stdio.h>
int
main()
{
int n;
char TableauAMoi[7]; //Attention ce n'est plus 5 !
//Initialisation
du tableau (affectation de chaque élément)
TableauAMoi[0]
= 'S';
TableauAMoi[1] = 'a';
TableauAMoi[2] = 'l';
TableauAMoi[3] = 'u';
TableauAMoi[4] = 't';
TableauAMoi[5]
= ' ';
TableauAMoi[6]
= '!';
n
= 0;
printf("Elément
%i : valeur : %c\n",n,TableauAMoi[n]);
n = 1;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 2;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 3;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 4;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n = 5;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
n= 6;
printf("Elément %i : valeur : %c\n",n,TableauAMoi[n]);
return
0;
}
|
Remarques de programmation :
Les
% indiquent les endroits du texte où on veut voir apparaître
les valeurs.
Il
y en a deux ici :
- le
premier "% i" (i comme integer) correspond à l'affichage
de l'index entier n
- le
second "% c" (c comme char) correspond à l'affichage
du caractère TableauAMoi[n].
Remarquez
que les %i et %c sont placés dans l'ordre des variables correspondantes
n et TableauAMoi[n] entre virgules à droite dans la partie entre
parenthèses de printf.
Le
' \n ' n'a rien à voir avec ' n ' : \n est toujours le retour à
la ligne (n comme new line).
Affichage
obtenu à l'exécution :
Elément
0 : valeur : S
Elément 1 : valeur : a
Elément 2 : valeur : l
Elément 3 : valeur : u
Elément 4 : valeur : t
Elément 5 : valeur :
Elément 6 : valeur : ! |
Affectation directe à la déclaration (initialisation) :
int Premier[7]
= {1,2,3,5,7,11,13,17,19,23};
Ainsi Premier[3]
est égal à 5.
|