2010-03-21 6 views
3

J'ai un tableau de doubles pointeurs, mais chaque fois que j'essaie d'imprimer une des valeurs, l'adresse est imprimée. Comment imprimer la valeur réelle?Valeur d'impression C++ d'un pointeur

cout < < arr [i]? cout < < & arr [i]? ils impriment tous les deux l'adresse

Quelqu'un sait-il?

Répondre

7

Si c'est vraiment un tableau de (initialisé) pointeurs doubles, à savoir:

double *arr[] = ... 
// Initialize individual values 

tout ce que vous avez besoin est:

cout << *arr[i]; 
1

Cout < < * (arr [i]) affichera la valeur.

0

Si "arr" est déclaré comme

double* arr[..]; 

Ensuite, vous utilisez:

cout << *(arr[i]) 
1

cout << *(arr[i]);

+1

ne ont pas besoin parens. – Potatoswatter

+2

@Potatoswatter. Le compilateur peut ne pas, et techniquement non plus, parce que je peux me souvenir de la priorité de l'opérateur si je dois. Mais ils améliorent certainement les choses. –

+1

@Potatoswatter: les parens ne sont pas nécessaires pour '5 + 112% 65^1/5.5 && bar || foo^2 << 5' non plus, mais '(((5 + (112% 65))^(1/5.5)) && bar) || (foo^(2 << 5)) 'est beaucoup plus clair –