Onwebcreations.Net  
Onwebcreations.Net
 
Programmation
Services Gratuits
Codes Sources
Divertissements
   

  Programmation C Haut de page

 

Les tableaux :

int NomTab [5]; // déclaration d'une variable de tableau

On vient de définir un tableau de nom
NomTab, pouvant stocker 5 éléments de type int. Il faut faire ici une distinction entre le type des éléments de tableau et le type de la variable tableau Nomtab : les éléments du tableau ont le type int, alors que la variable NomTab est de type int [5], c'est à dire que NomTab, dans notre exemple, est de type "Tableau de 5 entiers".

Note : tous les éléments d'un tableau ont le même type.
On appelle index, le nombre situé entre [ ]. Il permet d'identifier chacun des éléments d'un tableau.

Affectation de valeur :

Le comptage des éléments commence à zéro :

i[0]=10;
i[1]=15;
i[2]=8;
i[3]=1;
i[4]=25;

Nous venons d'affecter des valeurs à chacun des éléments du tableau. Ces variables de tableau se manipulent comme toutes autres variables :

A propos de l'occupation en mémoire....

ELEMENT 1 2 3 4 5
TYPE int int int int int
OCCUPATION
MEMOIRE
(octet)
2 2 2 2 2
NOM VARIABLE  i[0] i[1] i[2] i[3] i[4]


cette variable de tableau occupe 5 x 2 octets donc 10 octets.

Le fonctionnement d'un tableau est très simple : lorsque l'on appelle une variable, l'ordinateur va chercher la valeur se trouvant à l'adresse mémoire de cette variable.
Exemple :

int a,b,c;
a = 10;
b = 20;
c = a + b;

Une variable est stockée en mémoire. Lorsque celle-ci est appelée, l'ordinateur va chercher la valeur de cette variable à l'aide d'une adresse mémoire. Chaque variable possède une adresse mémoire unique. La gestion des adressages n'est bien sur pas à la charge du programmeur.
Imaginez un instant que la variable a (de valeur 10) possède l'adresse mémoire 1020.
Cette variable a occupe le 1020ème octet et le 1021ème octet en partant du premier, le type int étant stocké sur 2 octets. Puis, au 1022ème octet, commence une autre variable et ainsi de suite.

Pour une variable de tableau, l'adressage est un peu plus complexe.
Imaginons notre variable de tableau :

int Tab[5];

dont l'adresse mémoire est 2000. Le tableau occupe donc les octets allant de 2000 à 2010, celui-ci étant composé de 5 éléments de 2 octets.
Entre les octets 2000 et 2010, voici comment s'organisent les 5 éléments de notre tableau int Tab[5] :

ELEMENT Tab[0] Tab[1] Tab[2] Tab[3] Tab[4]
ADRESSE
MEMOIRE
2000 2002 2004 2006 2008
Variable de tableau de nom Tab, de type int [5]

Tab[2] possède l'adresse mémoire 2004. Sachant que les éléments de ce tableaux occupent tous 2 octets, Tab[2] occupe les octets 2004 et 2005.

D'une manière générale, l'ordinateur effectue deux calculs pour obtenir l'adresse mémoire d'un élément de tableau :

OFFSET = ( index ) X ( taille en octet du type d'élément composant le tableau )
Adresse mémoire de l'élément = adresse mémoire du premier élément +
OFFSET

Illustrons ceci : cherchons l'adresse de
Tab[3] :

OFFSET = 3 x 2
OFFSET = 6

adresse mémoire de l'élément = 2000 + 6
adresse mémoire de l'élément = 2006

2006 correspond bien à l'adresse mémoire de
Tab[3].


La chaîne de caractère est un tableau :
De la même manière, les chaînes de caractères sont stockées sous forme de tableau. Nous avons vu dans le précédent chapitre que le type char permettait de stocker un unique caractère. Une chaîne de caractère étant composée de plusieurs caractères, la déclaration suivante :

char TabChaine[200]; // tableau de 200 élements de type char.

permet de déclarer une variable de tableau de nom TabChaine pouvant accueillir jusqu'a 199 caractères (type char), appelé chaîne de caractères.

strcpy(TabChaine,"bjr toto"); // Affecte la chaine "bjr toto" à la variable de tableau TabChaine, en logeant un caractère dans chaque élément du tableau.

Voici la représentation de cette chaîne de caractères :

Stockage de la chaîne "bjr toto"
[0]

[1]

[2] [3] [4] [5] [6] [7] [8]
b j r   t o t o \0

TabChaine[5] est le 6ème élément du tableau, et représente le caractère o. Le caractère nul (\0) représente la fin d'une chaîne de caractère.



[ << Page précédente | Page suivante >> ]


 
    Haut de page
© Onwebcreations.Net : Programmation & Services Internet
Accessible aussi par : Services-Gratuits-Webmasters.com
Contacter le suppport technique
Internaute(s) actuellement sur le site.