C++ static一些用法

一、全局变量、局部变量、静态全局变量、静态局部变量(声明在函数体的static变量)的区别:

1、存储位置:只有局部变量存在栈里,且初始化为随机值,其它三种变量存在静态存储区,初始化为0.

2、作用域:静态全局变量只初始化一次,只在本文件有效,防止被其它文件使用;全局变量可以通过extern关键字在其它文件使用;

局部变量和局部静态变量都在函数内有效,但局部变量返回时就失效,而局部静态变量仍会保留。


3、静态函数意味该函数只能在该文件下使用,也叫内部函数。

二、为什么要用静态变量

1、使用静态全局变量原因:只初始化一次,不用担心和其它文件变量名重合(也是使用静态函数的原因)。

2、使用静态局部变量原因:局部变量在函数返回时就失效了,为了:保持函数两次调用之间的变量值,而且使该变量只属于该函数(这意味着不适用全局变量,毕竟全局变量不属于函数自己)。就使用局部静态变量。


三、静态成员和静态成员函数(java常用):变量或函数是类的一部分,但不是类的各个对象的一部分。这种情况下static声明的变量只有一个副本,不像普通变量在每个对象里都有一个副本。类的静态函数只能访问静态成员(变量或者函数)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值