指针变量本身的内存位置
memory location of pointer variable itself?
是否有可能找到指针变量本身的内存位置?
。我不想知道指针引用的内存位置,我想知道指针变量的内存位置。
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的内存位置。
int A = 5;
int *k = &A;
cout << k;
A的地址为k;K的地址是& K .
你的兄弟,我们在你的地址上放了一个地址,这样你在写地址的时候就可以写了。
相关文章:
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 如何在不等待检索的情况下获取C++中的内存位置?
- 向量的内存位置不连续
- 如何根据C++在同一内存位置重新初始化 C# 中的对象(还是自动完成)?
- 常量引用的内存位置
- C++强制变量到一个固定的内存位置
- 为什么未初始化的内存位置的值给出 -842150451 的值?
- 为什么存储在内存位置的值会发生变化?
- 在特定内存位置构造 c++ 对象
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 内存位置出现Microsoft C++异常:std::out_of_range
- 函数,返回变量c++占用的内存位置的大小
- 无法在 Opencv 中显示图像导致内存位置
- 从十六进制到双的转换始终导致内存位置的 std::out_of_range
- 错误 在测试.exe 0x76C9FD62时出现未经处理的异常:Microsoft C++异常:内存位置0x006FF8
- 错误:内存位置的 std::length_error
- C++不同内存位置中的默认数组值
- 为什么动态分配的两个变量的内存位置不是连续的?
- Boost.进程间内存位置
- 查找编译时构造类的内存位置