【发布时间】:2015-05-26 17:15:04
【问题描述】:
我遇到了this 的问题,我想知道为什么在方法的堆栈上创建的非常量字符串的地址在请求其地址时会返回一个常量指针。我已经复制粘贴了那里使用的代码示例
void myfunc(string*& val)
{
// Do stuff to the string pointer
}
int main()
{
// ...
string s;
myfunc(&s);
// ...
}
我的问题是& 返回一个变量的地址。那么在上述情况下,std::string s 是non constant 那么为什么它会将其地址作为常量返回?我想知道的是为什么将非常量字符串的地址作为常量地址返回。堆栈上创建的所有对象的地址都是常量吗?
【问题讨论】:
-
不知道投反对票的原因。
-
A
string const*ponter 仍然可以指向一个非 const 实例,不清楚你在问什么。变量本身是const与它的地址的 constness 无关。 -
AFAIK, *& 什么都不做。您正在从其引用中获取指针的值,因此,与仅获取
string值相同。 -
也许是因为你的问题是错误的......'不清楚'?
-
我会在问题中添加更多细节
标签: c++