关于static(静态)变量的一些理解

关键字static就是静态的意思,被static修饰的变量就是静态变量,对于静态变量和普通变量有很多区别:

           (1)静态变量只能被初始化一次,下一次运算的依据就是上一次的结果;

#include<stdio.h>
#include<iostream>
using namespace std;
void fun(int i)
{
static int value=i++;
value+=i;
cout<<value<<endl;
}
int main()
{
        fun(1);
fun(2);
fun(3);
return 0;
}

运算结果:3

                    5

                    8

对上述函数,当调用fun(1)时,value被初始化为1;i为2;下一个语句value加上i,输出3;调用fun(2)时不会被初始化,value上次操作的值为3,加上i,结果为5;同理调用fun(3)最后结果为8;

          (2) 对于非静态的变量,每个类对象都有自己的一个复制品,占一块内存空间,而对于静态变量,无论所在类的对象被定义了多少个,静态数据成员在程序中只有一份复制品,所有的对象共享访问,而且静态数据成员存储在全局数据区;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值