bonjour,
y'a t-il une différence de vitesse de lecture écriture entre la syntaxe pointeur ou tableau ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 *(tabl+i) // ou tabl[i]
bonjour,
y'a t-il une différence de vitesse de lecture écriture entre la syntaxe pointeur ou tableau ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 *(tabl+i) // ou tabl[i]
Aucune. Dans les 2 cas, le compilo se place sur tabl et décale de i éléments.
Là où ça peut jouer, c'est dans un truc de ce genre
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (i=0; i < n; i++) tabl[i]=...; for (i=0, pt=tabl; i < n; i++, pt++) *pt=...;
Dans la première boucle, l'opération "positionnement au début et décalage" se fait à chaque itération.
Dans la seconde boucle, ces deux opérations n'y sont plus, le pointeur étant déjà sur le bon élément...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
ne pas oublier de remettre le pointeur au debut apres sinon tu vas droit vers le resultat inattendu au mieux et vers Seg default au pire.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
on s'est pass compris. soit un pointer p,je fais :
a la fin de ce code si je fais un printf("%d",*p) j'ai aucune des valeurs de i dans [0;4[
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for(i=0;i<4;i++) { *p=i; p++; }
donc je lui demande apres le p++ deplacer le pointer jusqu'a ca position de depart
donc faire autant de p-- qu'il faut.
j'ai pas parler d'initialiser le pointeur
C'est pas fait en hard ça ?
genre en x86:
Par contre un compilateur pourra facilement optimiser la première boucle, mais pas forcément la seconde...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 movl -4(%ebp, %edx, 4), %eax # Full example: load *(ebp - 4 + (edx * 4)) into eax
Partager