article Annuaire
const sont des constantes
par exemple.
const int con = 1024;
la définition d'une constante int
valeur de la variable con inchangeable
Affectez une fonction
const int con = func();
Les variables continues déclarées
Lorsque des variables continues de déclaration const, sont valables
const int con1=1, con2=2, con3=3;
CON1, CON2, con3 sont des constantes
référence const et le type const &
Le point de référence constante à la constante elle - même doit aussi être une constante.
La variable de référence ne peut pas être modifié.
const int con1 = 1024;
const int &con2 = con1; //对常量的引用,简称常量引用,也必须是一个常量
const int &con3 = 1024; //常量引用,可以赋上一个字面值。而非常量引用是不行的
int cVal = 1;
const int &con4 = cVal; //常量引用,可以赋值一个非常量的变量
Remarque, CON4, est attribué sur une grande valeur. CON4 lui-même ne peut pas être changé, mais les points à l'ampleur même est variable. Modifiez les valeurs mêmes:
cVal = 197;
cout << con4 << endl;
sorties 197
Le point de référence constante à la constante lui - même doit également être une constante
de référence const constante, l'ampleur du changement est très, les valeurs de référence sont modifiés
non par lui - même pour changer la valeur des points
pointeur const
pointeur Const: Type const *
pointeur constante, est essentiellement un pointeur. définit la Déclaration: const première constante de caractère, suivi par le type de pointeur.
Désignant un pointeur constant lui - même doit être une constante.
Cependant, la variable de pointeur lui - même peut être réaffecté.
const int con1 = 1024;
const int *con2 = &con1; //指向常量的指针
int cVal = 1;
const int *con3 = &cVal; //指向非常量的指针
int cVal2 = 197;
con2 = con3 = &cVal2;
cout << *con2 << endl;
cout << *con3 << endl;
Comme décrit ci - dessus, la forme d'une const type *
définition variable, si un point est constant, le montant est. Peut - être pointant vers l' adresse désignée re.
Changement du point à la valeur d' origine par les solutions de pointeur de symbole de référence, il n'est pas acceptable.*con3 = 200;//error
constantes de pointeur: * Type const
constante de pointeur. Il est essentiellement une constante qui est un type de pointeur. Déclaration définit: un premier type de pointeur, suivi du caractère constant const.
Lorsque vous définissez doit être initialisé. Parce que le pointeur est une constante, il ne peut donc être réaffecté, il pointera toujours à la valeur initiale de l'adresse.
int con1 = 1024;
int *const con2 = &con1; //常量指针
int cVal = 1;
*con2 = 10;
con2 = &cVal; //error
Au-dessus, l'adresse CON2 ne peut pas être changé, mais la valeur du point d'adresse est variable.
pointeur Immuable lui-même, et ne variable valeur du point d'adresse non: Type const * const
Complète deux définitions ci-dessus,
int con1 = 1024;
const int *const con2 = &con1;
int cVal = 1;
*con2 = 10; //error
con2 = &cVal; //error
adresse ci-dessus, CON2 ne peut être modifiée, et ne variable valeur du point d'adresse non.
Haut et en bas const const
Haut const (haut niveau const) représente lui - même est une constante
const sous - jacente (bas niveau const) représenté par des points est une constante
parlant populaire,
haut const, à savoir (pointeur ou une référence ou un autre type) variable elle - même ne change pas;
fond const , à savoir, (ou tout autre type de pointeur ou de référence) la valeur de la variable pointe objet immuable.
Pour les pointeurs qui:
couche supérieure de type est const *;
const * est le type sous - jacent.
Une référence à ce:
const du type et est sous - jacent. (Cette disposition, donc je suis très surpris. Il est évident que vous pouvez pointer à la constante et des variables de référence non constante, et par constants, le changement ne lui - même, ne peut pas changer la valeur des références d'objet ne peut dire que c'est un mort spécifié)
Seule la couche supérieure est le fond const:
const int *const ccp = &cv;//左边是 low const,右边是 top const;
cpp11: expression constante constexpr
cpp11 Ajouter des mots - clés constexpr
peuvent être utilisés pour déclarer des constantes, fonctions et constantes.
constexpr int rv() {
return 100;
}
constexpr int xd = 88;
constexpr int xxd = rv();
Le compilateur lors de la vérification de compilation, les définitions constantes sont corrects.
Étant donné que la valeur constante à déterminer au cours de la compilation, il est disponible pour les types non-base d'expressions constantes. Comme un type de pointeur ne suffit pas