Notation pointeur /tableau
Marie
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
voila je suis en train de consulter un programme en C et je me retrouve face à une notation que je n'ai jamais vu jusqu'à présent.
char *fonction(char **str)
int i;
while ((*str)[i]
...
Pouvez-vous me dire à quoi cela correspond le (*str)[i] ?
Merci
voila je suis en train de consulter un programme en C et je me retrouve face à une notation que je n'ai jamais vu jusqu'à présent.
char *fonction(char **str)
int i;
while ((*str)[i]
...
Pouvez-vous me dire à quoi cela correspond le (*str)[i] ?
Merci
2 réponses
-
Le rang i du tableau (*str) se trouvant à l'adresse str.
-
Salut Marie,
char **str
permet certainement l'accès à un tableau de chaînes C préalablement déclaré et initialisé, dont le pointeur est passé à la fonction.
(*str)[i]
permet d'accéder aux caractères de la première chaîne du tableau de chaînes passé à la fonction etwhile ((*str)[i] ...
sera vrai tant que l'indexi
n'est pas sur le caractère de fin de chaîne.
Dal-
Par exemple :
#include <stdio.h> void fonction(const char **str) { printf("1st char of the 1st string: %c\n",(*str)[0]); printf("1st char of the 2nd string: %c\n",(*(str + 1))[0]); } int main(void) { const char * array[] = { "1. First string", "2. Second string", "3. Third string" }; fonction(array); return 0; }
donne :
1st char of the 1st string: 1
1st char of the 2nd string: 2
Dal
-