c语言中的static的用法
时间: 2023-12-03 07:04:12 浏览: 94
C语言中的static关键字主要有以下几种用法:
1. 修饰局部变量,使其在函数调用结束后仍然保持其值不变。
```c
void test() {
static int x = 0;
x++;
printf("%d ", x);
}
int main() {
int i = 0;
while (i < 10) {
test();
i++;
}
return 0;
}
// 输出:1 2 3 4 5 6 7 8 9 10
```
2. 修饰全局变量或函数,使其作用域仅限于当前文件。
```c
static int x = 0; // 修饰全局变量
static void test() { // 修饰函数
x++;
printf("%d ", x);
}
```
3. 修饰函数,使其仅能被当前文件内的其他函数调用。
```c
static void test() {
printf("Hello World!");
}
```
相关问题
c语言中static的用法
在C语言中,`static`关键字有以下几种用法:
1. 静态变量:在函数内部使用`static`修饰的变量称为静态变量。静态变量在程序运行时只会被初始化一次,而且只能在定义它的函数内部访问。例如:
```
void func() {
static int count = 0; // 这是一个静态变量
count++;
printf("count = %d\n", count);
}
int main() {
func(); // 输出 count = 1
func(); // 输出 count = 2
return 0;
}
```
2. 静态函数:在函数声明或定义时使用`static`修饰的函数称为静态函数。静态函数只能在定义它的文件内部访问,无法被其他文件调用。例如:
```
static void func() { // 这是一个静态函数
printf("Hello, world!\n");
}
int main() {
func(); // 编译错误:func未定义
return 0;
}
```
3. 静态全局变量:在全局变量声明时使用`static`修饰的变量称为静态全局变量。静态全局变量只能在定义它的文件内部访问,无法被其他文件访问。例如:
```
static int count = 0; // 这是一个静态全局变量
void func() {
count++;
printf("count = %d\n", count);
}
int main() {
func(); // 输出 count = 1
func(); // 输出 count = 2
return 0;
}
```
C语言的STATIC用法
在C语言中,STATIC是一个关键字,它可以用于变量、函数和代码块中。
1. 静态局部变量
在函数内部定义的静态局部变量只会被初始化一次,即使函数被多次调用,该变量的值也不会被重置。这是因为静态局部变量的生命周期是整个程序的运行期间。
2. 静态全局变量
在全局作用域中定义的静态变量只能在定义该变量的文件中使用,其他文件无法访问。静态全局变量的生命周期也是整个程序的运行期间。
3. 静态函数
在函数声明前加上STATIC关键字,可以将该函数的作用域限制在定义该函数的文件中。这样可以防止在其他文件中使用相同名称的函数,从而避免命名冲突。
4. 静态代码块
在代码块中定义的静态变量与静态局部变量类似,只会被初始化一次,且其生命周期是整个程序的运行期间。静态代码块可以用于实现单例模式等功能。
阅读全文