static静态变量拾遗

C++ Primer Plus P309 9.2.3

c++为静态存储持续性提供了3种链接性:外部链接性(可在其他文件中访问),内部链接性(只能在当前文件访问)和无连接性(只能在当前函数和代码块中访问)。编译器将分配固定的内存块来储存所有的静态变量。如果没有显式地初始化静态变量,编译器将把它设置为0。

int global = 1000; //全局变量
static int one_file = 50; //静态全局变量
int main()
{

}
void func1(int n)
{
static int count = 0; //静态局部变量
int llama = 0;
}

在func1()中声明的变量count的作用域为局部,没有连接性,这意味着只能在func1()中使用它,就像自动变量llama一样。然而,与llama不同的是,即使在func1()函数没有执行的时候,count也留在内存中,不像llama会消失。

global和one_file的作用域都为整个文件,即在从声明位置到文件结尾的范围内都可以被使用。具体地说,可以在main()、func1()等其他函数使用。由于one_file的链接性为内部,因此只能在包含上述代码的文件中使用它;由于global的链接性为外部,因此可以在程序的其他文件中使用它

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值