c语言中static的用法
时间: 2023-07-19 20:29:57 浏览: 119
在C语言中,static关键字可以用于以下几个方面:
1. 声明静态变量
使用static关键字声明的变量被称为静态变量,与普通变量不同的是,静态变量在程序运行期间只会被初始化一次,而且只能在定义它的函数或文件中访问,不能被其他文件访问。
示例代码:
```
void func()
{
static int count = 0;
count++;
printf("count = %d\n", count);
}
int main()
{
func(); // count = 1
func(); // count = 2
func(); // count = 3
return 0;
}
```
2. 声明静态函数
使用static关键字声明的函数被称为静态函数,与普通函数不同的是,静态函数只能在定义它的文件中访问,不能被其他文件访问。
示例代码:
```
static void func()
{
printf("this is a static function\n");
}
int main()
{
func(); // this is a static function
return 0;
}
```
3. 声明静态全局变量
在文件作用域内使用static关键字声明的变量被称为静态全局变量,与普通全局变量不同的是,静态全局变量只能在定义它的文件中访问,不能被其他文件访问。
示例代码:
```
static int count = 0;
void func()
{
count++;
printf("count = %d\n", count);
}
int main()
{
func(); // count = 1
func(); // count = 2
func(); // count = 3
return 0;
}
```
4. 声明静态类成员
在C++中,使用static关键字可以声明静态类成员,与普通类成员不同的是,静态类成员不属于类对象,而是属于整个类,只有一个副本,可以在不创建对象的情况下访问。
示例代码:
```
class MyClass {
public:
static int count;
};
int MyClass::count = 0;
int main()
{
MyClass::count++;
printf("count = %d\n", MyClass::count);
return 0;
}
```
所以,在C语言中,static关键字的用法主要是用于声明静态变量、静态函数、静态全局变量等,可以用于限制变量或函数的作用域,或者用于记忆化计算等场景。
阅读全文