GÉNIE ÉLECTRIQUE

 

Dernière mise à jour 
19 août 2006

SOMMAIRE

     Tableaux

Un tableau est un regroupement dans une même variable de variables de même type

Légende sans bordure 3: Le premier indice d’un tableau est 0
int chiffres[]={0,1,2,3,4,5,6,7,8,9} /* un tableau de 10 entiers*/

chiffre[0]=0, et chiffre[3]=3

 

int TAB[20]={1,12,13} /* les 17 autres sont initialisés à 0*/

TAB correspond à l’adresse de début du tableau, donc 

q       TAB représente &TAB[0]

q       TAB[0] représente *TAB

TAB+1 pointera la donnée suivante et non l’adresse suivante

TAB+i = &TAB[i]

 Un tableau peut avoir n dimensions

char TAB[2][3]={{1,2,3},{4,5,6}} représente une matrice 2x3 initialisée,

1

2

Zone de Texte: TAB[1][1]=5

 3

4

5

6

Les chaînes de caractères sont des tableaux de caractères finissant par 0, une chaîne est entourée de "  et est automatiquement terminée par /0

char message[]= "bonjour"; est la même chose que

char message[]={‘b’,’o’,’n’,’j’,’o’,’u’,’r’,/0} ;

 

on peut utiliser un pointeur pour traiter les chaînes de caractères

char *p= "  bonjour " ;

while (*p !=0) putchar(*p++) ; /*équivalent à puts*/

 

Conversions de types : CAST

Lors d’un calcul les char sont automatiquement transformés en int.

Si nécessaire les transformations de type s’effectuent dans l’ordre

char -> int -> long -> float -> double

signed -> unsigned

 

Une transformation peut être forcée par un cast

float x ; int a=5 ; x=(float)a ;       /* x vaudra 5.0 */

float x=5.6 ; int a ; a=(int)x ; /* a vaudra 5*/

Initialisation d’un pointeur à une adresse absolue

#define PORTA          *(unsigned char *)(0x1000)        ex: var=PORTA

la valeur 0x1000 est transformée en un pointeur sur un char. PORTA est équivalent au contenu de ce pointeur, donc au contenu de l’adresse 0x1000

 

 Genelaix - IUFM - Académie d'Aix-Marseille-août 2006