Lors de l'initialisation d'une gamme de Cons-Chary, j'ai essayé de changer la chaîne et j'ai été capable de le modifier sans aucun problème.
J'apprendais comment initialiser une matrice de Cons-Char.
Je pense que je fais une erreur ici que je ne suis pas capable de trouver. P> 1er init: wwww.google.com
2e init: ss -> ici, je m'attends à jeter une erreur p>
blockQuote> p>
3 Réponses :
char* const s = "Hi";
Pour mettre cela en anglais simple (pas nécessairement à 100% précis mais sert à conceptualiser), ce initialise un tableau de conant strges stry> qui ne contient aucun élément constant . Ainsi, les éléments de la matrice peuvent être changés mais le tableau lui-même ne peut pas être changé p> p>
const char * const strs[10] = {"www.google.com", "https://www.google.com", "www.google.com/", "https://www.google.com/", NULL, NULL };
Les pointeurs que vous définissez (non initialisent) ne sont pas constants; Les données qu'ils indiquent ne peuvent pas être modifiées via les pointeurs. Vous n'essayez pas de modifier les chaînes; Tout est bien.
Si les pointeurs étaient constants, vos missions généreraient des avertissements du compilateur.
1er init code>. Nah, les pointeurs sont d'abord initialisés par défaut. Et puis vous assignez une seconde fois avec
"wwww.google.com" code>.
Const Char * STRS [10]; CODE> Définit
STRS code> en tant que tableau de dix pointeurs à des caractères constants. Le tableau lui-même n'est pas constant, et n'est-ce pas non plus un éventail de personnages.
Incidemment, ce sont des affectations, pas des réinitialisations. L'initialisation est quelque chose qui se produit lors de la création d'un objet et vous ne pouvez pas le faire plus d'une fois.