notes Arthur sur C++



Types

plage
non signé signé
.........type bits possibilités de à de à
char 8 \[ 10^{2} \] 0 255 -128 127
short int 16 \[ 10^{5} \] 0 65'535 -32'768 32'765
int 32 \[ 10^{9} \] 0 4 mrds -2 mrds 2 mrds
long int 32/64
long long int 64 \[ 10^{19} \]
float 32 \[ 10^{9} \] \[ ±10^{±38} \]
double 64 \[ ±10^{±308} \]
long double 80/128
80 \[ ±10^{±?} \]
128 \[ ±10^{±4932} \]

Exemple de structure de mémoire




Références et pointeurs



Exemple de l'évolution de l'état d'un système 1




Exemple de l'évolution de l'état d'un système 2




Note : une référence c'est (souvent comme) un pointeur constant.

Pointeurs

a *p ok? explication
const int a; const int* const p = &a; oui Rien ne peut changer.
_____ int a; const int* const p = &a; oui La variable peut être modifiée mais pas par le pointeur qui est non modifiable.
const int a; const int* _____ p = &a; oui Le pointeur peut être redirigé mais ne peut modifier la valeur de l’entier constant.
_____ int a; const int* _____ p = &a; oui Le pointeur peut être redirigé et ne peut pas modifier pas la valeur de l’entier qui peut être modifiée ailleurs.
const int a; _____ int* const p = &a; non Un pointeur vers un entier non constant ne peut pas pointer vers une constante.
_____ int a; _____ int* const p = &a; oui Le pointeur constant vers un entier modifiable ne peut pas être redirigé mais peut modifier la valeur pointée.
const int a; _____ int* _____ p = &a; non Un pointeur modifiable vers un entier non constant ne peut pas pointer vers une constante.
_____ int a; _____ int* _____ p = &a; oui Tout est modifiable.
Pointeur constant : c'est le pointeur qui est constant