Lorsque j'utilise auto
d'en déduire un type pointeur, j'ai trouvé un étrange phénomène. Mon code ressemble à ceci:
#include <iostream>
using namespace std;
int main()
{
int i = 100;
auto p1 = &i;
auto *p2 = &i;
cout << *p1 << " " << *p2 << endl;
return 0;
}
Après la compilation et l'exécution, nous pouvons constater que le résultat d' *p1
et *p2
est le même, les deux 100. Cela signifie p1
et p2
sont à la fois un pointeur sur un objet qui renvoie à une int
objet.
[user@host ~]$ ./test
100 100
Quelle est la différence entre ces deux énoncés qui définissent p1
et p2
?