Skip to content
Snippets Groups Projects
Commit eed3eb9e authored by orestis.malaspin's avatar orestis.malaspin
Browse files
parents 93c7bca9 0994306d
No related branches found
No related tags found
No related merge requests found
% 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]);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment