私はこのプログラムの出力が何であるかを理解できません。たぶん誰かが私を助けることができます。ダブルポインタを参照すると、値は何ですか?
なぜダブルポインターのリファレンスは:0062FB78?
逆参照されたダブルポインタ= 0062FAA0の参照はなぜですか?
これらは反転してはいけませんか?
0062FB78は、私は0062FAA0は、ダブルポインタのアドレスであると思いますよX
のアドレスですか?あなたの上に問題を行く前に
#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
は、あなたの様々な機能に*値で*パラメータを渡しています。 – Bathsheba
'&x'を"参照 "と呼ぶのはちょっと混乱します。 'x'のアドレスは参照ではありません – user463035818
あなたの関数では、'&x'はパラメータのアドレスです。関数に渡した値のアドレスではありません。 – molbdnilo