Cours de C

Variables Structurées


Tableaux

● Un tableau:
Collection de variables de même type.
● Déclaré par:
Son nom, son type, ses dimensions, ses bornes.
● Chaque élément du tableau est représenté par:
Le nom du tableau
Un ou plusieurs indices placés chacun entre crochets.

Tableau à une dimension (Vecteur)

Syntax
C
#define Nmax <valeur>
ou
const int Nmax = ≶valeur>;
<Type-deonnées> Table [Nmax]
C
#define Nmax 10
ou
const int Nmax = 10;
float T[Nmax]; // premier indice: 0
ou //en cas d'initialisation
float T[Nmax] = {1,2, 3, 4, 5, 6, 7, 8, 9};
ou //en cas de qq initialisations
float T[Nmax] = {1,,,,0,,,0,,1}
Exemple: float X[10]; //premier indice: 0, dernier indice: 9

Tableau à deux dimensions (Matrice)

Syntax
C
#define Nmax <valeur>
ou
const int Nmax = ≶valeur>;
<Type-deonnées> Table [Nmax]
Exemple: float X[10][20];
/*premiers indices: 0, 0*/
/*derniers indice: 9, 19*/
C
#define Nmax 10
ou
const int Nmax = 10;
float T[Nmax][Nmax]; // premier indice: 0
ou //en cas d'initialisation
float T[Nmax] = {{1,2, 3, 4, 5, 6, 7, 8, 9},
{1, 2, 3, 4, 5, 6, 7, 8, 9},
...};
ou //en cas de qq initialisations
float T[Nmax][Nmax] = {{1,,,,0,,,0,,1}, {1,,,,0,,,0,,1}}

Enregistrement

● Définition:
Autres noms: variable composée, structure.
Un ensemble d'informations de types différents.
Chaque information est représentée par un champ.
Chaque champ est désigné par: nom et type.

Type Enregistrement ou (Structure)

Type d'enregistrements
Exemple de type d'enregistrements

Type Union

● L'union en C, permet d'interpréter 'espaceémoire d'une variable de plusieurs façons différentes (économie d'espace mémoire).

réserver un seul espace pour toutes les interprétations
au lieu de
un espace pour chacune des interprétations
Le type "union" est défini par:
typedef union
{
<Type de données> <Nom de champ1>;
<Type de données> <Nom de champ2>;
...
} <Nom de type>;
ou
union <Nom de type>
{
<Type de données> <Nom de champ1>;
<Type de données> <Nom de champ2>;
...
};

#include <stdio.h>

typdef union
{
long entier;
float reel;
} EntierOuReel;

void main()
{
// Déclaration de variables
long n;
EntierOuReel nombre;

// Lecture des valuers
printf("taper un nombre entier: ");
scanf("%d", &n);

// Condition
if(n > 32767))
{
nombre.reel = n;
printf("Reel correspondant: %d\n", nombre.reel);
}
else
{
nombre.entier = n;
printf("Entier correspondant: %d\n", nombre.reel);
}
}