diff --git a/base_2.md b/base_2.md index 813d1dec987b3e334a03e37af1ec7e09c7575bca..6f1df7ec1e71b544b244af66ae6f918e4ebb4687 100644 --- a/base_2.md +++ b/base_2.md @@ -1,5 +1,5 @@ -% Programmation séquentielle en C -% Base II - Inspirés des slides de F. Glück +% Base II +% Inspirés des slides de F. Glück % 25 septembre 2019 # Représentation des variables en mémoire (1/N) @@ -39,7 +39,7 @@ ```C type *id; ``` -- Pour interprêter le contenu de ce qu'il pointe, il doit être typé. +- Pour interpréter le contenu de ce qu'il pointe, il doit être typé. - Un pointeur n'est rien d'autre qu'un entier (64bit sur x86-64, soit 8 octets). - Un pointeur peut être **déréférencé**: on accède à la valeur située à l'adresse mémoire sur laquelle il pointe. @@ -71,6 +71,10 @@ - Permettent d'avoir plusieurs chemins d'accès à une valeur. - Lire **et** écrire en même temps dans un bout de mémoire devient possible: **danger**. +# Quiz: Les pointeurs + +## [Quiz: Les pointeurs](https://cyberlearn.hes-so.ch/mod/evoting/view.php?id=1038526) + # La fonction `sizeof()` (1/N) - La fonction `sizeof()`{.C} permet de connaître la taille en octets: @@ -124,7 +128,7 @@ int max(int a, int b) { int main() { int c = max(4, 5); } - ``` +``` # Les fonctions (3/N) @@ -192,7 +196,7 @@ int main() { - Pour modifier un variable, il faut passer son **adresse mémoire**. - L'adresse d'une variable, `x`{.C}, est accédé par `&x`{.C}. - Un **pointeur** vers une variable entière a le type, `int *x`{.C}. -- La sytaxe `*x`{.C} sert à **déréférencer** le pointeur (à accéder à la mémoire pointée). +- La syntaxe `*x`{.C} sert à **déréférencer** le pointeur (à accéder à la mémoire pointée). # Les fonctions (7/N) @@ -213,6 +217,10 @@ int main() { } ``` +# Quiz: Les fonctions + +## [Quiz: Les fonctions](https://cyberlearn.hes-so.ch/mod/evoting/view.php?id=1038560) + <!-- TODO quiz; ```C void set_to_two(int *a) { @@ -358,7 +366,7 @@ int main(void) { ```C int x[10]; -for (int i = 0; 0 < 10; ++i) { +for (int i = 0; i < 10; ++i) { x[i] = 0; } int j = 0; @@ -389,7 +397,7 @@ do { printf("tab[%d] = %d\n", i, tab[i]); } } - // n doit venir avant tab, [n] opionel + // n doit venir avant tab, [n] optionnel void bar(int n, int tab[n]) { for (int i = 0; i < n; ++i) { printf("tab[%d] = %d\n", i, tab[i]);