c-static
static修饰全局变量,改变了变量的链接属性,使得这个全局变量只能在本文件中访问。 全局变量在本文件中访问
static修饰局部变量,使其生命周期变长,只在该作用域中使用,离开该作用域。该变量没有被销毁,还在内存中,即使再一次访问,还是上一次变量的值,直到程序运行结束才释放,被static修饰的局部变量放在静态区存储区
static修饰函数,改变了函数的链接属性,只能在本文件中调用,不能被其他文件访问
注意:静态变量可以多次赋值,但是只能初始化一次
c++- static
被static修饰的函数为静态函数
1:而 C++中除了与c中相同的功能(用来修饰局部静态变量和外部静态变量、函数)功能外,还用来定义类的成员变量和函数。即静态成员和静态成员函数
1: 修饰类的数据成员
这种数据成员的生成周期大于类的对象(实例),静态数据成员是每个类有一份,而普通数据成员是每个对象有一份
static修饰成员变量:变量在类内声明,在类外定义和初始化,定义时,不需要加static关键字
class student
{
public:
student(int n, char *nm, double s); //构造函数
~student(); //析构函数
void shown_infom();
void shown_count_sum();
private:
int num;
char *name;
double score;
static int count; //静态成员变量
static double sum;
};
//类外初始化静态成员变量
int student::count = 0;
double student::sum = 0;
2:修饰类的成员函数
即所谓的“静态成员函数”。这种成员函数只能访问静态成员和其他静态成员函数,不能访问非静态成员和非静态成员函数因为类的静态成员函数是属于整个类而非类的对象,所以它没有this指针,这就导致了它仅能访问类的静态数据和静态成员函数
2021-03-09
最新推荐文章于 2024-10-17 21:05:59 发布