gpt4 book ai didi

c++ - 我可以直接为指针分配地址吗?如果是这样,该怎么做?

转载 作者:行者123 更新时间:2023-11-30 01:01:32 26 4
gpt4 key购买 nike

int main()
{
int a = 2; // address is 0x7ffeefbff58c
int *b = &a;
std::cout << "address of a: " << b << std::endl;
return 0;
}

我的 int 变量 a 位于地址 0x7ffeefbff58c,但我可以直接将 int* b 赋值给 0x7ffeefbff58c 吗?

我试过 int * b = 0x7ffeefbff58c;但是有一个错误说“不能用'long'类型的右值初始化'int *'类型的变量”,所以我必须使用(&a)的地址来初始化指针吗?或者还有其他方法吗?

最佳答案

can I directly assign int* b with 0x7ffeefbff58c?

从技术上讲,是的。

If so, how to do that?

重新解释类型转换。

但请注意,一般情况下绝对不能保证 a 位于地址 0x7ffeefbff58c 中。因此,对于重新解释为指针的此类整数,您无能为力。使用局部变量执行此操作毫无意义

将整数解释为指针的一种情况是一些嵌入式系统为特殊目的保留了一些常量内存地址。

关于c++ - 我可以直接为指针分配地址吗?如果是这样,该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58958980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com