2010-04-16 3 views
-5

pourquoi le pointeur est plus efficace ou supérieur à la déclaration de tableau?pourquoi le pointeur est plus efficace que le tableau en cours d'utilisation

+1

Est-ce que vous postez simplement des questions à partir des devoirs tels qu'ils apparaissent sur votre liste? (btw je ne downvote pas) – stefanB

+4

D'accord, je vous ai aidé sur votre dernière question mais vous devriez probablement ralentir maintenant. 3 questions dans une demi-heure est probablement trop. Si ce sont des questions sur un devoir, référez-vous à votre manuel ou demandez à votre professeur. (Cela dit, j'espère que ce n'est pas demandé n'importe où, parce que c'est assez insignifiant.) – GManNickG

+3

et pas une seule réponse acceptée! – Axarydax

Répondre

5

Vous comparez des pommes à des oranges.

Un pointeur contient une valeur qui est l'adresse d'une autre variable. Un tableau est une collection contiguë d'éléments. Ils ne sont pas les mêmes.

Si vous clarifiez votre question, nous pourrions vous donner une meilleure réponse. À l'heure actuelle, c'est plutôt insignifiant.

0

Lors de mes tests (il y a quelques années), j'ai trouvé exactement le contraire - une référence de tableau était plus rapide qu'un pointeur. Je pense que c'était avec MSVC 6.0. Tout dépend du code d'assemblage que le compilateur décide de générer, et c'est assez arbitraire.

Pour clarifier les choses, je comparais quelque chose comme ce qui suit:

for (int i = 0; i < length; ++i) 
    sum += p[i]; 

for (int i = 0; i < length; ++i) 
    sum += *p++; 
1

Ils ne sont pas. Selon la norme C, a[x] est juste sucre syntaxique pour *(a+x). En fait, les processeurs modernes peuvent produire du code parfois plus rapide si a[x] est utilisé à la place de l'arithmétique de pointeur brute car certaines analyses statiques peuvent calculer plus d'informations dans ce cas, permettant des optimisations plus agressives. La raison en est l'analyse simplifiée des alias.

Questions connexes