VS静态字符串是否可写?

时间:2018-01-11 23:13:15

标签: c++ visual-studio visual-studio-2008 static-variables

如果我在函数中声明以下静态变量:

void some_function()
{
    static char name[] = " :\\Folder\\file.ext";

    name[0] = 'C';
}

我可以写入它,还是我必须在堆栈中声明它?

PS。此代码可以使用Microsoft Visual Studio 2008及更高版本进行编译。

2 个答案:

答案 0 :(得分:3)

C ++中的静态对象遵循与任何其他对象相同的一般规则:只要它们不是const,它们就是可写的。 <{1}}数组的元素是可写的。

在这方面VS并没有什么特别之处。

答案 1 :(得分:0)

您可以写入 member this.While(guard, Delayed body) = if not ( guard() ) then this.Zero() else body() |> combine ( Delayed ( fun () -> this.While(guard, Delayed body) ) ) 变量。但请注意,static变量仅在程序启动时初始化一次。因此,如果您再次输入该函数,则static的内容将从函数开头的name开始。

尝试:

"C:\\Folder\\file.ext"

输出:

void some_function()
{
    static char name[] = " :\\Folder\\file.ext";

    cout << name  << endl;
    name[0] = 'C';
}

int main()
{
    some_function();
    some_function();
    return 0;
}