Bonjour,
Voici le code suivant :
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
// Un pointeur de pointeur est exactement la meme chose qu'un vecteur de pointeur
// **p <=> *p[] mais ATTENTION pas la même chose qu'une matrice p[][]
static void traiter(char *s)
{
printf("- recu : %s\n", s);
}
int main(int argc, char *argv[])
{
char **p = argv;
while(true)
{
if(--argc <= 0) // Je ne comprends pas cette ligne ?
break;
p++;
traiter(*p);
}
return EXIT_SUCCESS;
}
Ce que je ne comprends pas dans ce code c'est cela : if(--argc <= 0) pouvez vous me l'expliquer ou bien me l'écrire différemment en séparant argc de l'opérateur --
car j'ai essayé le code suivant :
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
// Un pointeur de pointeur est exactement la meme chose qu'un vecteur de pointeur
// **p <=> *p[] mais ATTENTION pas la même chose qu'une matrice p[][]
static void traiter(char *s)
{
printf("- recu : %s\n", s);
}
int main(int argc, char *argv[])
{
char **p = argv;
while(true)
{
if(argc <= 0)
{
argc--;
break;
}
p++;
traiter(*p);
}
return EXIT_SUCCESS;
}
Et ce code ne donne pas du tout les mêmes résultat que le premier et je ne comprends pas pourquoi ?
Pouvez vous me donner une explication svp ?