Renvoi de pointeur depuis une fonction
Bonjour ,
Dans ce code , il a certaines choses que je ne comprends pas .
1 er ) Je pensais que l'ecriture du prototype de la fonction devait etre rigoureusement le meme que celui de la fonction apres le main . Ici nous avons dabord : char *strinverser(char *input);
puis la fonction elle meme : char *strinverser(char *entrante)
2 eme) puts(strinverser(machaine)); Pour moi ici , on a l'appel de la fonction qui envoie le tableau "ma chaine " et apres inversion de la chaine , le retour de la fonction se fait dans la fonction puts . C'est ca ?
3eme) Pourquoi apres la 1ere ligne de la 1 ere boucle while , il y a un " ; " ?
Derniere question : L'utilisation des pointeurs n'est pas encore super clair pour moi . Que nous apporte de plus l'utilisation de pointeur dans cet exemple ?
Code:
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
| #include <stdio.h>
char *strinverser(char *imput);
int main()
{
char machaine[64];
printf("Saisissez du texte :");
fgets(machaine,62,stdin);
puts(strinverser(machaine));
return 0;
}
char *strinverser(char *entrante)
{
static char sortante[64];
char *i,*o;
i=entrante; o=sortante;
while(*i++ != '\n')
;
i--;
while(i>=entrante)
*o++=*i--;
*o='\0';
return(sortante);
} |