informatique (MP2I/MPI) · Chapitre 1 · Application directe du cours
Lire une déclaration
Le langage C · niveau 2
Énoncé
Que déclare chacune de ces lignes ?
int* p, q;
const int* a;
int* const b = &n;Corrigé
int* p, q;déclareppointeur vers unint, etqentier. L'étoile se rattache à la variable, pas au type — c'est une source classique de confusion. On écrit donc une déclaration par ligne.const int* a;: pointeur vers un entier constant. On peut déplacera, on ne peut pas écrire*a. C'est la forme des paramètres qu'une fonction promet de ne pas modifier.int* const b = &n;: pointeur constant vers un entier modifiable. On peut écrire*b, on ne peut pas faire pointerbailleurs.
La lecture se fait de droite à gauche en partant du nom : « b est un const pointeur vers int ».
Exercices semblables
- Un dépassement qui ne dit rien corrigé
- Passage par valeur corrigé
- La taille d'une chaîne corrigé
- Problème — Une chaîne sûre corrigé
- Problème — Le crible d'Ératosthène, et ce qu'il coûte corrigé