Je n'arrive pas à comprendre pourquoi la sortie de ce programme est ce qu'elle est. Peut-être que quelqu'un peut m'aider.En référence à un double pointeur, quelle est la valeur?
Et pourquoi la référence du double pointeur: 0062FB78? Pourquoi la référence du double pointeur déréférencé est-elle 0062FAA0?
Ne devraient-ils pas être retournés?
0062FB78 est l'adresse de x
Je suis deviner 0062FAA0 est l'adresse de la double pointeur?
#include <iostream>
void print(int x) {
std::cout << "value: " << (x) << "\n";
std::cout << "reference: " << (&x) << "\n";
//std::cout << (*x) << "\n";
}
void printPointer(int *x) {
std::cout << "value: " << x << "\n";
std::cout << "reference: " << &x << "\n";
std::cout << "dereference:" << *x << "\n";
}
void printDoublePointer(int **x) {
std::cout << "value: " << x << "\n";
std::cout << "reference: " << &x << "\n";
std::cout << "dereference:" << *x << "\n";
printPointer(*x);
}
void printTripplePointer(int ***x) {
std::cout << "value:" << x << "\n";
std::cout << "reference:" << &x << "\n";
std::cout << "dereference:" << *x << "\n";
printDoublePointer(*x);
}
void print(char* string) {
std::cout << "\n" << string << "\n";
}
int main()
{
int x = 19;
int *y; // y is a address space
y = &x; // &y now points to the address of x, *y now has the value of x
int **doublePointer = &y;
print(x);
printPointer(y);
printDoublePointer(doublePointer);
print("doublePointer");
std::cin >> x;
}
x
value: 19
reference: 0062FBB78
y
value: 0062FC7C
reference: 0062FBB78
defererence: 19
doublePointer
value: 0062FC58
reference of double Pointer: 0062FB78
dereference of doble Pointer: 0062FC7C
value of dereferenced double pointer: 0062FC7C
reference of dereferenced double pointer: 0062FAA0
dereference: 19
Remarque vous le passage de paramètres * par valeur * dans vos différentes fonctions. – Bathsheba
appelant '& x' une" référence "est un peu déroutant. c'est l'adresse de 'x' qui n'est pas une référence – user463035818
Dans vos fonctions,' & x' est l'adresse du paramètre. Ce n'est pas l'adresse de la valeur que vous avez transmise à la fonction. – molbdnilo