les fonctions
ensemble des instructions / morceau de code qui permet d’effectuer une tâche précise
les avantages des fonctions
facile à débugger / organise un programme / réutilisable
type de retour
void = rien / autres = type de variable
nom de fonction
propre à chacune / décrit la fonction
paramètre formel
liste de déclaration des variables dont chacun est associé son type , ils sont initialisés automatiquement ( cette liste peut être vide
les corps de la fonction
une suite des instructions pour réaliser un sous-programme
les fonctions de type non-void
chaque branche d’exécution doit être terminée par “return”
la mémoire
une succession d’octets
octet
contient 8 bits et possède une adresse
bits
Peut être 0 ou 1
le premier octet
a pour adresse 1
lors de la déclaration d’une variable
un espace de la mémoire est alloué automatiquement
la taille de l’espace mémoire
dépend de son type , un processeur , système d’exploitation et la version du compilateur et donné par “sizeof”
printf(“sizeof(type”)=%d\n”,sizeof(type))
permet de récupérer et afficher la taille des différents types de donnés en c
un pointeur
est une variable qui contient l’adresse de la zone de la mémoire , il doit toujours être initialisé à NULL
NULL
la valeur du pointeur qui ne pointe vers aucune variable
“&“ placé devant le nom d’une variable
retourne son adresse
l’adresse d’une variable
correspond à l’adresse du premier octet de son espace mémoire
“*” placé devant le nom d’un pointeur
permet d’obtenir la valeur située à l’adresse pointée par ce dernier
phrase magique
le nom d’un tableau est un pointeur sur son premier élément
&(tab[0]);
tab;
tab[0]=5;
*tab=5;
tab[ i ];
*(tab+i);
les structures
un type composé de plusieurs variables appelés “champs”
déclaration d’une structure
struct nom
déclaration d’une variable
struct nomdelastructure nomdelavariable
initialisation d’une variable
déclaration={valeur1;valeur2;…..}
accéder un champs d’une structure
nomdelavariable . nomduchamps
Typedef
renommer une structure ( créer un alias )
(*pointeur).champs=valeur;
pointeur→champs=valeur;
variable statique
variable locale dont le contenu persiste entre deux appels de fonction
variable globale
existe durant toute l’exécution du programme avec la quantité de mémoire est connue des la compilation
allocation dynamique automatique
la réservation et la libération de la mémoire est automatique pendant l’exécution du programme
allocation dynamique manuelle
la réservation et la libération de la mémoire est explicite via un appel de fonction pendant l’exécution du programme
les variables globales
ont une quantité de mémoire fixe
la liste des instructions
est fixe
certaines variables
sont nécessaires que temporairement
l’appel d’une fonction
consomme de mémoire jusqu’a la fin de son exécution
la memoire ponctuelle
est demandée que pour des paramètres non connus à l’avance
le programme
contient la suite des instructions à exécuter
les donnés et les constantes
des variables globales et statiques
la pile
contient la mémoire allouée automatiquement
le tas
contient la mémoire allouée manuellement
la mémoire
elle forme un bloc d’octets contigus et séparée en différents groupes fonctionnels
la fonction malloc
elle permet de réserver un espace en mémoire avec une taille en octet
la fonction calloc
elle permet de réserver un espace en mémoire et l’initialise à 0
la fonction free
elle permet de libérer un espace mémoire réserver au préalable
la fonction realloc
elle permet de changer la taille du bloc mémoire alloué