C中的static、extern关键字

本文详细探讨了C++中的static与extern关键字。static变量在程序执行期间保持其值,仅初始化一次,并在块内保留。extern用于声明全局变量,告知编译器变量在其他位置已定义。此外,static还用于实现信息隐藏,限制变量的访问范围。了解这些概念对于C++编程至关重要。
摘要由CSDN通过智能技术生成

static

1、块内声明的static变量在程序执行期间驻留在同一存储单元内。和每次程序离开所在块就会丢失值得自动变量auto不同,static变量会无期限地保留值

2、块内得static变量只在程序执行前进行一次初始化,而auto变量则会在每次出现时都进行初始化(当然,假设他有初始化代码)。

3、每次函数被递归调用时,它都会获得一组新的auto变量,但是如果函数含有static变量,那么此函数得全部调用都可以共享这个static变量。

4、虽然函数不应该返回指向auto变量得指针,但是函数返回指向static变量得指针是没有问题的。

5、static经常用来做信息隐藏,static修饰的变量只对内部是公开可见的,而外部是无法访问的。

extern

1、extern声明中的变量始终具有静态存储期限,变量的作用域依赖于声明的位置,如果声明在块内部,那么变量具有块作用域;否则变量具有文件作用域。

2、extern修饰的变量只是对变量进行声明,而不是定义,他只是提示编译器需要访问定义在别处的变量。变量在程序中可以有多次声明,但是只能有一次定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值