1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| #include <stdio.h>
#include <string.h>
//La déclaration de ps signifie:
// - On ne peut pas modifier ps
// - On peut modifier *ps
// - On ne peut pas modifier **ps (ps pointe vers un char const *)
int Fonction(char const * * const ps)
{
//Ici, on ne peut modifier ni s, ni *s
char const * const s = "a plus";
*ps = s;
return 0;
}
//Ici, on peut modifier *s mais pas *
int AutreFonction(char * const s, size_t taille)
{
strncpy(s, "coucou", taille);
s[taille-1] = '\0';
return 0;
}
int main(void)
{
//dede est un tableau de 6 caractères modifiables.
char dede[]={"salut"};
//taille est la taille du tableau dede, en caractères.
size_t taille = sizeof(dede)/sizeof(dede[0]);
//dodo est un pointeur.
//dodo peut être modifié, mais *dodo ne peut pas l'être
char const * dodo = "bonjour";
printf("dodo : %s\n",dodo);
Fonction(&dodo);
printf("dodo : %s\n",dodo);
printf("dede : %s\n",dede);
AutreFonction(dede, taille);
printf("dede : %s\n",dede);
return 0;
} |