© Éditions Eyrolles
161
chapitre n° 8
Les chaînes de caractères
A priori, la norme interdit la modification de quelque chose de constant. En pratique, beaucoup de compilateurs l’acceptent, de sorte que l’on aboutit à la modification de notre constante
bonjour en xonjour ou boxjour ! Nous pourrions, par exemple, le constater en exécutant
une instruction telle que puts (adr).
Signalons qu’une constante chaîne apparaît également dans une instruction telle que :
printf ("bonjour") ;
Ici, on pourrait penser que sa modification n’est guère possible puisque nous n’avons pas
accès à son adresse. Cependant, lorsque cette même constante (bonjour) apparaît en plusieurs emplacements d’un programme, certains compilateurs peuvent ne la créer qu’une fois ;
dans ces conditions, la chaîne transmise à printf peut très bien se trouver modifiée par le
processus décrit précédemment...
Dans une déclaration telle que :
char ch[20] = "bonjour" ;
il n’apparaît pas de chaîne constante, et ceci malgré la notation employée ("...") laquelle, ici,
n’est qu’une facilité d’écriture remplaçant l’initialisation des premiers caractères du tableau ch.
En particulier, toute modification de l’un des éléments de ch, par une instruction telle que :
* (ch + 3) = 'x' ;
est parfaitement licite (nous n’avons aucune raison de vouloir que le contenu du tableau ch
reste constant).
11 Les arguments transmis à la fonction main
11.1 Comment passer des arguments à un programme
La fonction main peut récupérer les valeurs des arguments fournis au programme lors de son
lancement. Le mécanisme utilisé par l’utilisateur pour fournir ces informations dépend de
l’environnement. Il peut s’agir de commandes de menus pour des environnements dits graphiques ou intégrés. Dans les environnements fonctionnant en mode texte (tels DOS ou Unix), il
s’agit de valeurs associées à la commande de lancement du programme (d’où le terme d’arguments de la ligne de commande encore utilisé parfois pour décrire ce mécanisme). En voici un
exemple où l’on demande l’exécution du programme nommé test, en lui transmettant les
arguments arg1, arg2 et arg3 :
test arg1 arg2 arg3
Delannoy Livre.book Page 161 Mercredi, 6. mai 2009 4:26 16
161
chapitre n° 8
Les chaînes de caractères
A priori, la norme interdit la modification de quelque chose de constant. En pratique, beaucoup de compilateurs l’acceptent, de sorte que l’on aboutit à la modification de notre constante
bonjour en xonjour ou boxjour ! Nous pourrions, par exemple, le constater en exécutant
une instruction telle que puts (adr).
Signalons qu’une constante chaîne apparaît également dans une instruction telle que :
printf ("bonjour") ;
Ici, on pourrait penser que sa modification n’est guère possible puisque nous n’avons pas
accès à son adresse. Cependant, lorsque cette même constante (bonjour) apparaît en plusieurs emplacements d’un programme, certains compilateurs peuvent ne la créer qu’une fois ;
dans ces conditions, la chaîne transmise à printf peut très bien se trouver modifiée par le
processus décrit précédemment...
Dans une déclaration telle que :
char ch[20] = "bonjour" ;
il n’apparaît pas de chaîne constante, et ceci malgré la notation employée ("...") laquelle, ici,
n’est qu’une facilité d’écriture remplaçant l’initialisation des premiers caractères du tableau ch.
En particulier, toute modification de l’un des éléments de ch, par une instruction telle que :
* (ch + 3) = 'x' ;
est parfaitement licite (nous n’avons aucune raison de vouloir que le contenu du tableau ch
reste constant).
11 Les arguments transmis à la fonction main
11.1 Comment passer des arguments à un programme
La fonction main peut récupérer les valeurs des arguments fournis au programme lors de son
lancement. Le mécanisme utilisé par l’utilisateur pour fournir ces informations dépend de
l’environnement. Il peut s’agir de commandes de menus pour des environnements dits graphiques ou intégrés. Dans les environnements fonctionnant en mode texte (tels DOS ou Unix), il
s’agit de valeurs associées à la commande de lancement du programme (d’où le terme d’arguments de la ligne de commande encore utilisé parfois pour décrire ce mécanisme). En voici un
exemple où l’on demande l’exécution du programme nommé test, en lui transmettant les
arguments arg1, arg2 et arg3 :
test arg1 arg2 arg3
Delannoy Livre.book Page 161 Mercredi, 6. mai 2009 4:26 16
