Les pointeurs en langage C.

Signaler
Messages postés
9
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
29 mars 2009
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour, j'ai voulu savoir comment peut on parcourir un tableau d'entier en utilisant un pointeur et non pas un compteur qui est une variable de type entier. Merci infiniment.

8 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
int tab[10];
int i, v;
int *p;
// on va decrementer tout le tableau en le parcourant avec un pointeur
p = tab;
i = 9;
do {
  v = *p;
  *p = --v;
  p--;
} while(--i >= 0);

ciao...
BruNews, MVP VC++
Messages postés
37
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
11 avril 2010

Y a un blem dans ton code Brunews.

p = tab; // donc p pointe a l'adresse &tab[0]

/* blabla */
p--; // donc p pointe autrepart mais surement pas sur le tableau
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
hi hi, trop drole et fort exact.
p++;
ça ira assurément mieux.

ciao...
BruNews, MVP VC++
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
Salut,

C'est possible sans aucune variable de type entier si tu mets une balise de fin à ton tableau (ici -1) :

int tab[11] = { 0,1,2,3,5,5,6,7,8,9,-1 };
int *p;

for(p=tab;*p!=-1;p++)
{
printf("%d\n",*p);
}

ed73
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
y a juste que c'estt nettement moins efficace.

ciao...
BruNews, MVP VC++
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
C'est peut-être moins efficace mais ça respecte à la lettre l'énoncé du problème.
Messages postés
37
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
11 avril 2010

A mon avis il doit evite ce genre de code :

void afficherTableau(int tableau[], int taille) {
 for (int i = 0; i < taille; i++)
  cout << tableau[i] << endl;
}

Car ici i est un compteur.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
me semblait aussi mais sait-on jamais.

ciao...
BruNews, MVP VC++