一.static是一个关键字,可以用于多种方式:
1. 定义静态变量:在函数内部使用static修饰变量,使变量在函数调用结束后仍然保持原始的值。
2. 定义静态函数:在函数定义时使用static关键字,可以将该函数限定在当前文件内部使用,不会被其他文件调用。
3. 定义静态类成员变量:在类成员变量前加上static关键字可以使其成为该类的静态变量。
4. 定义静态类成员函数:在类成员函数前加上static关键字可以使其成为该类的静态函数,不需要对象实例就可以调用。
5. 定义静态代码块:在类中使用static关键字定义一段静态代码块,在类被加载时自动执行,用于执行一些静态资源的初始化操作。
总之,static可以用于定义静态变量、静态函数、静态类成员变量、静态类成员函数、静态代码块等等。其主要作用是限定变量、函数、类成员的作用域和生命周期。
下面来看一个例子:
#include<stdio.h>
void test()
{
int a = 1;
a++;
printf("%d", a);
}
int main()
{
int i = 0;
while (i<10)
{
test();
i++;
}
return 0;
}
首先创建了一个关于局部变量a的自增函数,并打印出a,然后在while循环中调用该函数,循环往复十次。但为什么运行结果是10个2呢?因为a为局部变量,生命周期为定义的函数范围,出了这个函数,a“死亡”,当再次进入这个函数,a再一次被定义成1,而不是第一次的结果二。
当用了static关键字修饰时
目录
结果发生了变化,因为用了static(英文单词:静止的意思)修饰完变量a后,使变量在函数调用结束后仍然保持原始的值(婉如给a喝了一碗长生不老药,延长了其生命周期)