Académique Documents
Professionnel Documents
Culture Documents
LES TABLEAUX
Mr R. TLEMSANI
CAS GNRAL
Dans le cas le plus simple la dclaration d'un tableau se fait par une formule comme : type-de-base nom [ expressionopt ] ; Exemple : unsigned long table[10]; L'expression optionnelle qui figure entre les crochets spcifie le nombre d'lments du tableau. Le premier lment possde toujours l'indice 0. Par consquent, un tableau t dclar de taille N possde les lments t0; t1; ::: tN-1. Ainsi la dfinition prcdente alloue un tableau de 10 lments, nomms respectivement table[0], table[1], ... table[9]. L'expression optionnelle qui figure entre les crochets doit tre de type entier et constante au sens, c'est-dire une expression dont tous les lments sont connus au moment de la compilation. De cette manire le compilateur peut l'valuer et connatre la quantit d'espace ncessaire pour loger le tableau. Elle est obligatoire lorsqu'il s'agit d'une dfinition, car il y a alors allocation effective du tableau. Elle est facultative dans le cas des dclarations qui ne sont pas des dfinitions, c'est--dire : lors de la dclaration d'un tableau qui est un argument formel d'une fonction ; lors de la dclaration d'un tableau externe (dfini dans un autre fichier).
CHAINES DE CARACTRES
Les chaines de caractres sont reprsentes comme des tableaux de caractres. Un caractre nul suit le dernier caractre utile de la chaine et en indique la fin. Cette convention est suivie par le compilateur (qui range les chaines constantes en leur ajoutant un caractre nul), ainsi que par les fonctions de la librairie standard qui construisent des chaines. Elle est suppose vrifie par les fonctions de la librairie standard qui exploitent des chaines. Par consquent, avant de passer une chaine une telle fonction, il faut s'assurer qu'elle comporte bien un caractre nul la fin. Donnons un exemple classique de traitement de chaines : la fonction strlen (extraite de la bibliothque standard) qui calcule le nombre de caractres utiles d'une chaine : int strlen(char s[]) { register int i = 0; while (s[i++] != '\0') ; return i - 1; }
dclaration
type nom_tableau[dimension]
exemples:
char buffer[80]; int mat[10];
doit tre une constante
exemples:
buffer[5] = 'c'; mat[6] = 10;
le premier lment commence l'indice 0 !! Les valeurs ne sont pas initialises !! Les dbordements ne sont pas vrifis
dclaration
type nom_tableau[dim1][dim2][dimn]
exemples:
char buffer[20][80]; int mat[6][10]; char livres[100][60][80];
exemples:
livre[30][15][20] = 'c'; mat[5][6] =13; cout << mat[5][6]<<'\n';