这究竟为什么有效?(静态还是其他?)
Why exactly does this work? (Static or things?)
所以这个方法:
int num (int a = 0)
{
static int b = a;
return b;
}
可以用来使用num(value)设置和返回值,但我不明白的是,为什么它在使用num()调用时仍然返回b。它不应该因为默认参数而返回0吗?它与b是静态的有关吗?如果这听起来很无聊,我很抱歉,但我对这门语言很陌生。
静态变量初始化一次,即执行第一次通过声明时。
以后的调用只使用该值。
在C++11中,初始化是线程安全的。
相关文章:
- 使用 CMake 与其他静态库链接的静态库 - 一个有效,一个无效。为什么?
- 访问从 CPP 文件到其他头文件的静态变量
- 如何将 cpp 文件中的静态函数公开给其他文件
- 在这种情况下,我们可以使用静态而不是朋友吗,还有其他解决方案是什么
- 将函数的引用设置为其他 c++ 文件中的非静态函数
- 当其他链接库链接 stdc++ 为动态时,如何将 libstdc++ 链接设置为静态?
- 与其他静态const成员初始化静态常量成员
- 如何将GCC中的静态库与其他动态库链接
- 如何添加其他CMAKE模块的静态LIB
- 如何在任何其他全局变量或静态变量之前创建/构造类实例
- 依赖于其他静态库的静态库
- 其他静态阵列破坏了OMAPL138目标(CCS5.2)上的DSP应用程序
- C 代码 - 覆盖率(或其他静态代码分析仪) 线程安全
- 将静态库与其他静态库链接
- 为什么我们能够在类定义中定义[static const int],而不能定义其他静态const类型
- 静态方法中的对象创建是改变其他静态对象的私有成员变量
- 其他静态库使用的静态库的更改
- LNK4006, LNK4221在使用包含其他静态库的静态库时发出警告
- 如何使用GCC制作基于其他静态库的静态库
- 如何静态链接到另一个项目,该项目本身需要链接到其他静态库