djkill55
Messages postés33Date d'inscriptionmercredi 26 novembre 2003StatutMembreDernière intervention26 mars 2004
-
11 janv. 2004 à 13:35
djkill55
Messages postés33Date d'inscriptionmercredi 26 novembre 2003StatutMembreDernière intervention26 mars 2004
-
11 janv. 2004 à 15:02
bonjour,
j aimerai savoir cmt on fait un scanf sur une suite de pointeur, je m explike, je dois faire ca ms sans utiliser les [] , cad les tableux, ms un pointeur *p
for (i=0; i<10; i++)
scanf("%d", &arr2[i]);
et
for ( i=0; i<10; i++)
{if (arr1[i] != 0)
counter++;
}
tjrs sans utiliser de tableur ms le meme pointeur *x...
ca fai 1h je tente tt... arf
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 11 janv. 2004 à 14:28
quand tu déclare un tableau du genre :
int tab[10];
tab est un pointeur sur le premier élément du tableau.
pour parcourir, le tableau avec un compteur, en général on fait :
for(int i = 0; i < 10; i++)
tab[i] = 0;
comme tab est un pointeur sur le premier élément du tableau, l'adresse du second est tab+1, le second tab+2..
et leuts valeusr *(tab+1), *(tab+2)...
=>la notation tab[i] est identique à faire *(tab+i)
for(int i = 0; i < 10; i++)
*(tab+i) = 0;
au lien d'incrémenter le compteur i, on peut directement incrémenter un pointeur sur les éléments du tableau :
int *p = tab;
p va pointer sur le premier élément du tableau.
la boucle devient
for(int*p = tab, p < tab+10; p++)
*p = 0;
initialisation : int *p = tab;
test fin : p < tab + 10 (adresse fin du tableau)
passage élément suivant : p++.