static静态变量分析
来源:互联网 发布:手机淘宝人工客服在哪 编辑:程序博客网 时间:2024/06/07 10:00
1,静态局部变量,在全局区分配内存,生命周期是整个程序运行时间,作用域是该局部作用域
//static int a = 10; 把a变成一个状态变量
//a初始化的时候10 ,只初始化一次,之后static int a = 10;不再执行
//a = 11
int& mygg()
{
static int a = 10;
printf("a:%d", a);
return a;
}
int main03()
{
mygg() = 11;
mygg();
system("pause");
return 0;
}
运行结果:a=10,a=11;
2,当static修饰某方法,则该方法只能在该.c文件中使用,在别的文件无法使用extern 无法使用
//这个函数myprintf只能在这个c中被使用
static void myprintf()
{
printf("锄禾日当午,生活真是苦");
printf("很好很好");
}
3,当static修饰类成员时,该静态成员局部于类,不属于某个对象,不论创建多少个对象,该成员数据共享,static成员应拿出类外面初始化
class Test3
{
public:
Test3(int a, int b)
{
m_a = a;
m_b = b;
cout<<m_a<<endl;
count ++;
cout<<"构造执行"<<endl;
}
~Test3()
{
cout<<"析构执行"<<endl;
}
static int getCount()
{
return count;
}
protected:
private:
int m_a; //属于具体的对象
int m_b;
//static修饰的变量或者函数,属于这个类,不属于具体的对象
static int count;
};
int Test3::count = 0;
void main()
{
Test3 t1(1, 3), t2(3, 4), t3(5, 65);
//可以通过类::静态方法或者对象直接调用
cout<<Test3::getCount()<<endl;;
cout<<t3.getCount()<<endl;;
system("pause");
}
注:普通方法可以引用静态数据,而静态方法不可以使用普通成员
- static静态变量分析
- static定义静态变量
- static 静态变量
- 静态变量java static
- static 静态局部变量
- 静态变量static
- static静态变量
- 静态变量 static
- php static 静态变量
- static静态成员变量
- PHP静态变量 static
- PHP static静态变量
- 静态变量static
- static 静态变量
- 静态变量 static 全局变量
- static 静态变量
- 静态变量 static 浅谈
- static静态变量
- 深入浅出-iOS的TCP/IP协议族剖析&&Socket
- Redis消息队列发布微博
- 【小镇的技术天梯】Scapy学习日记(三)
- Pend Lists
- 机房重构之SqlHelper
- static静态变量分析
- Git版本控制:Gitlab及Coding.net的使用
- UTF8和GB2312的相互转换
- 默认参数和占位参数
- os_core.c
- 浅谈JavaScript的全局变量跟局部变量
- webStorm:正确的代码也提示绿色下划线的解决方法
- Hibernate应用开发学习笔记1
- 【每周一文】Collaborative Filtering for Implicit Feedback Datasets(2008)