如果我在函数中声明以下静态变量:
void some_function()
{
static char name[] = " :\\Folder\\file.ext";
name[0] = 'C';
}
我可以写入它,还是我必须在堆栈中声明它?
PS。此代码可以使用Microsoft Visual Studio 2008及更高版本进行编译。
答案 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;
}