【问题标题】:Why exactly does this work? (Static or things?) [duplicate]为什么这行得通? (静态还是东西?)[重复]
【发布时间】:2015-06-12 21:19:27
【问题描述】:

所以这个方法:

int num (int a = 0)
{
static int b = a;
return b;
}

可以使用num(VALUE)来设置和返回一个值,但是我不明白的是为什么它在使用num()调用时仍然返回b。由于默认参数,它不应该返回 0 吗?它是否必须与 b 是静态的有关?抱歉,如果这听起来很无聊,但我是该语言的新手。

【问题讨论】:

  • 第一次调用num b 将被设置为a 当时的任何值。之后,b 永远不会改变;只返回。因此,您将继续获得相同的值。

标签: c++


【解决方案1】:

静态变量初始化一次,第一次执行通过声明。

稍后调用只使用该值。

在 C++11 中,初始化是线程安全的。

【讨论】:

    猜你喜欢
    • 2013-08-12
    • 2015-06-12
    • 1970-01-01
    • 2018-09-23
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多