46 votes

Objective C const NSString * vs NSString * const

Je suis en train de une NSString constante dans mon .h fichier à définir, dans mon .m. Je comprends que
extern NSString * const variableName; dans la .h et
NSString * const variableName = @"variableValue"; est la façon de le faire. L'examen de c tutoriels je vois qu' const est censé aller de l'avant définitions de variables. Ma question est: pourquoi n'est-il pas déclaré en tant que extern const NSString * variableName; dans la .h et const NSString * variableName = @"variableValue"; dans la .m. Je sais que cela ne fonctionne pas car je rencontre des avertissements du compilateur qui disent "Passing argument 1 de methodName: les rejets qualificatifs de pointeur de type de cible'. Qu'est-ce que cela signifie?

63voto

Macmade Points 27414

Ce n'est pas la même chose. Le modificateur const peut être appliqué à la valeur ou le pointeur sur la valeur.

 int * const
 

Un pointeur constant (non modifiable) sur un entier (sa valeur peut être modifiée)

 const int *
 

Un pointeur modifiable sur un entier constant (sa valeur ne peut pas être modifiée)

Donc, vous pouvez imaginer:

 const int * const;
 

5voto

Jogi Thakur Points 144

Pointeur Constant n'est PAS de pointeur constant. Pointeur Constant signifie que le pointeur est constante. Pour exemple: Pointeur Constant int * const ptr2 indique que ptr2 est un pointeur constant. Cela signifie que ptr2 ne peut pas être fait à point à un autre nombre entier. Cependant l'entier pointé par ptr2 peut être changé.

Où comme un Pointeur constant est const int * ptr1 indique que ptr1 est un pointeur qui pointe vers une constante de type entier. L'entier est constante et ne peut pas être changé. Toutefois, le pointeur de ptr1 peut être fait à point à un autre nombre entier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X