设计一个c语言程序,展现局部变量 局部静态变量 全局静态变量全局变量的特性和区别
时间: 2023-08-06 13:05:50 浏览: 152
c语言中全局变量和局部变量的探讨
好的,下面是一个示例程序,展现了局部变量、局部静态变量、全局静态变量和全局变量的特性和区别:
```c
#include <stdio.h>
// 全局变量
int globalVar = 10;
// 全局静态变量
static int globalStaticVar = 20;
// 函数声明
void exampleFunction();
int main() {
// 局部变量
int localVar = 30;
printf("Global variable value: %d\n", globalVar);
printf("Global static variable value: %d\n", globalStaticVar);
printf("Local variable value: %d\n", localVar);
exampleFunction();
exampleFunction();
exampleFunction();
return 0;
}
// 函数定义
void exampleFunction() {
// 局部静态变量
static int staticVar = 0;
// 输出各个变量的值
printf("Global variable value: %d\n", globalVar);
printf("Global static variable value: %d\n", globalStaticVar);
printf("Static variable value: %d\n", staticVar);
// 将静态变量递增
staticVar++;
}
```
在这个程序中,我们定义了一个全局变量 `globalVar` 和一个全局静态变量 `globalStaticVar`,它们可以在程序的任何地方访问。在 `main()` 函数中,我们定义了一个局部变量 `localVar`,它只能在 `main()` 函数中访问。
我们还定义了一个函数 `exampleFunction()`,其中包含一个局部静态变量 `staticVar`,它只能在 `exampleFunction()` 函数内部访问。
在 `main()` 函数中,我们使用 `printf()` 函数输出了各个变量的值,并调用了三次 `exampleFunction()` 函数。在 `exampleFunction()` 函数中,我们也使用 `printf()` 函数输出了各个变量的值,并将静态变量 `staticVar` 递增。
运行结果如下所示:
```
Global variable value: 10
Global static variable value: 20
Local variable value: 30
Global variable value: 10
Global static variable value: 20
Static variable value: 0
Global variable value: 10
Global static variable value: 20
Static variable value: 1
Global variable value: 10
Global static variable value: 20
Static variable value: 2
```
我们可以看到,全局变量、全局静态变量、局部变量在任何地方都可以访问,而局部静态变量只能在函数内部访问。同时,全局变量和全局静态变量的值在整个程序的生命周期中都是保持不变的,而局部变量和局部静态变量的值只在函数调用期间存在。
此外,全局变量可以被不同的函数访问和修改,而全局静态变量只能在定义它的文件中访问和修改。局部变量和局部静态变量只能在它们所在的函数中访问和修改。
阅读全文