Dupliqué possible: strong>
Quelle est la différence entre const int * , const int * const, int const * p>xxx pré> blockQuote>
5 Réponses :
Certains des mots ne sont pas dans le même ordre. P>
(il n'y a pas de différence sémantique jusqu'à ce que le const bouge par rapport à l'étoile) p>
J'ai ri de cela plus que ce que les règles me permettent de faire.
Il n'y a pas de différence fonctionnelle entre ces deux. Le «plus précis» est Char Const * P Code> Parce que la sémantique a raison de rester à gauche. P>
Il n'y a pas de différence sémantique, mais c'est une question de style de codage et de lisibilité. Pour des expressions complexes, la lecture de droite à gauche fonctionne bien: p>
est un pointeur SO Char Cons ** const code> p>
const sur un pointeur à un char code>. p>
Char Cons * code> est plus cohérent à cet égard. Cependant, beaucoup de gens préfèrent const char * code> pour sa réadaptitude - il est immédiatement clair ce que cela signifie. p>
Depuis Cependant, considérez: p>
const char * p code> est un pointeur sur un Const Char code>. P>
chartons * p code> est un pointeur sur un charret code>. p>
Const Char code> et Char Const code> est identique, c'est pareil. P>
char * const p code> est un "code> const" / code> pointeur sur un (non-const). C'est à dire. Vous pouvez modifier le caractère réel, mais pas le pointeur pointant vers elle. p>
Aucune différence, car la position du '*' n'a pas bougé. p>
1) Const Char * p - Pointeur à un caractère constant ('P' n'est pas modifiable mais le pointeur est)
2) Char Const * p - également pointeur à un char p>
Cependant, si vous aviez quelque chose comme:
Char * Const P - Cela déclare "P" d'être un pointeur constant à un char. (Char P est modifiable mais le pointeur n'est pas) p>
La Dupe est ici: Stackoverflow.com/q/890535/694576 Pas où elle avait été proche, comme ce dernier est à propos de C ++.