我对C/C++有些新意,所以假设我有一个简单的结构:
struct item {
int* address;
std::string name;
}
Run Code Online (Sandbox Code Playgroud)
int*
有正确的数据类型来保存内存地址?我可以使用类似的东西:
item i; i.address = &i.;
要将structs属性设置为它自己的地址?
在C/C++中输入指针.你可以在任何指针中存储任何其他指针(因为它只是内存中字节的索引),但你无法自由转换它们(你需要使用强制转换).通常,指向变量类型的指针T
应具有类型T *
.所以在你的例子应该是:
struct item {
std::string * address;
std::string name;
}
Run Code Online (Sandbox Code Playgroud)是的你可以:
item i;
i.address = &(i.name);
Run Code Online (Sandbox Code Playgroud)这是如果你想存储会员的地址name
.
如果要存储结构地址:
struct item {
item * address;
std::string name;
}
item i;
i.address = &i;
Run Code Online (Sandbox Code Playgroud)