Différence entre const int*, const int * const et int * const en C++
Bonjour ! Je viens de commencer à apprendre le C++ et j'essaie de comprendre les pointeurs et le qualificateur const. J'ai lu plusieurs articles, mais je me trompe toujours entre ces trois constructions : `const int*`, `int * const` et `const int * const`.
Par exemple, j'ai écrit ce code :
```cpp
int value = 5;
const int* ptr1 = &value;
int * const ptr2 = &value;
const int * const ptr3 = &value;
```
Je comprends qu'elles sont toutes liées au fait que les données ou le pointeur lui-même ne peuvent pas être modifiés, mais je n'arrive pas à formuler clairement la différence. Quand j'essaie d'assigner une nouvelle valeur via `*ptr1 = 10;`, le compilateur se plaint. Et si j'essaie de modifier `ptr2`, par exemple `ptr2 = &otherValue;`, j'obtiens aussi une erreur. Mais je peux rediriger `ptr1` vers une autre variable, alors que `ptr2` non. Pourquoi ?
Je voudrais aussi comprendre dans quels cas utiliser chaque variante. Peut-être existe-t-il une règle mnémotechnique pour s'en souvenir ? Je serais reconnaissant pour une explication détaillée avec des exemples.
<<>>
Clé pour comprendre : lisez de droite à gauche
No answers yet.
Connectez-vous pour laisser une réponse