是否有可能找到一个指针变量本身的存储位置?指针变量本身的内存位置?
即我不想知道的内存位置的指针引用,我想知道指针变量的存储位置是什么。
int A = 5;
int *k = &A;
cout << k;
会给我的A.
位置是否k
有一个位置?
是否有可能找到一个指针变量本身的存储位置?指针变量本身的内存位置?
即我不想知道的内存位置的指针引用,我想知道指针变量的存储位置是什么。
int A = 5;
int *k = &A;
cout << k;
会给我的A.
位置是否k
有一个位置?
的int *k
位置是&k
,像这样:
// For this example, assume the variables start at 0x00 and are 32 bits each.
int A = 9; // 0x00 = 0x09
int * k = &A; // 0x04 = 0x00
int ** k_2 = &k; // 0x08 = 0x04
// Thus:
cout << "Value of A: " << A; // "Value of A: 9"
cout << "Address of A: " << k; // "Address of A: 0x00"
cout << "Address of k: " << k_2; // "Address of k: 0x04"
assert(A == *k);
assert(&A == k);
assert(&A == *k_2);
assert(A == **k_2);
assert(k == *k_2);
assert(&k == k_2);
指针是一个变量,于32位二进制文件的32位和64在64中,存储的存储器地址。像任何其他变量一样,它具有自己的地址,并且语法是相同的。对于大多数意图和目的,指针的作用类似于相同大小的无符号整数。
现在,当您拍下&k
时,您现在有一个int **
,伴随着所有有趣的复杂性。
从int ** k_2 = &k
,*k_2
是k
和**k_2
为*k
,所以一切正常关于你如何期望。
这可以是创建对象的跨库的有效途径(指针是相当基本的和主要安全通过)。双指针通常用于要传递指向对象的接口,但不会公开如何创建对象(例如,DirectX)。
是。您可以使用& k打印出* k的内存位置。
'* k'的位置是'k'。 'k'的位置是'&k'。 –
int A = 5;
int *k = &A;
cout << k;
A的地址是k; k的地址是& k。
哟耶,我们把地址在你的地址,你可以在你解决解决。
是要明白,一个指针变量_both_指针和变量是很重要的。并非所有的指针都是变量。例如。 '&A'是一个指针,但不是一个变量。因此,你不能说'&(&A)'。但是'k'在这里是一个变量,所以_你可以采用它的地址。 – MSalters