const serie 11

const serie 11

by Maria Anna Di Palma -
Number of replies: 1

Bonjour Monsieur,


ce matin, il me semble d'avoir compris que vous avez spécifié en cours que dans l'exercice sur les tableaux de pointeurs de la série 11, le premier 'const', lors de la déclaration du tableau est obligatoire alors que les autres (lors de la déclaration des pointeurs) ne le sont pas. Pourtant, si j' enlève les autres 'const' j'ai un problème de compilation étant donné que les chaines de caractères dans le tableau sont déclarées constantes aux départ.


Est-ce-que c'est faux ce que j'ai compris ce matin en cours?


Merci d'avance,

Cordialement, 

Maria Anna Di Palma.

In reply to Maria Anna Di Palma

Re: const serie 11

by Ronan Boulic -

pour cet exemple vu en cours ce matin, le const du tableau des pointeurs se propage sur les autres pointeurs de cet exemple. Tous les pointeurs qui reçoivent une valeur du tableau t contenant des "const char *" doivent aussi être de type "const char *"

La raison est que si les autres pointeurs n'étaient pas "const char*" alors on pourrait modifier les chaines constantes, ce qui est interdit.

-----------------

J'ai ensuite dit qu'il peut exister des tableaux à-la-C dont les éléments sont des chaîne de caractères à-la-C de type "char *" sans obligation d'avoir un const cette fois.

Vous connaissez un tel exemple de tableau car nous l'avons vu dans un cours et une série précédente: c'est le tableau argv des chaines de caractères à-la-C transmises à la fonction main. Sa déclaration est:  char * argv[ ]