在函数args中分配/初始化引用

tvr*_*tvr 3 c++

我来自C背景并试图理解这意味着什么:

void f(const string &x = "hello") {
}
Run Code Online (Sandbox Code Playgroud)

如果没有传入任何内容,x是否设置为默认值?"你好"在哪里居住?

Jer*_*fin 6

您的参数(x)是在调用函数的上下文中创建/初始化的.字符串文字"hello"具有静态存储持续时间.

该标准没有指定存储其中任何一个的内存形式,但在典型情况下,字符串文字将驻留在某个直接从可执行文件中的数据初始化的内存中,并将x在堆栈上创建(如果您没有在其位置传递其他内容,则传递文字的地址以初始化它.