是在一个文件里面申请的全局静态变量
时间: 2024-04-12 19:31:02 浏览: 76
对于在一个文件中声明的全局静态变量,同样可以使用作用域操作符来访问和操作。
下面是一个示例:
```cpp
#include <iostream>
static int globalStaticVariable = 10; // 全局静态变量的定义和初始化
void foo() {
std::cout << globalStaticVariable << std::endl; // 在函数中访问全局静态变量
globalStaticVariable = 20; // 修改全局静态变量的值
}
int main() {
std::cout << globalStaticVariable << std::endl; // 在主函数中访问全局静态变量
foo(); // 调用函数修改全局静态变量的值
std::cout << globalStaticVariable << std::endl; // 再次访问全局静态变量
return 0;
}
```
在上面的示例中,我们在一个文件中声明了一个名为`globalStaticVariable`的全局静态变量,并在不同的函数中访问和修改它的值。
输出结果将会是:
```
10
10
20
```
无论是在函数内部还是在主函数内部,我们都可以使用作用域操作符来访问和操作全局静态变量。全局静态变量在整个文件范围内可见,因此可以在不同的函数中共享和修改它们的值。
相关问题
设计一个程序 程序中包含局部变量 全局静态变量全局变量函数局部静态变量
好的,下面是一个示例程序,其中包含局部变量、全局变量、全局静态变量、局部静态变量以及函数:
```c++
#include <iostream>
// 全局变量
int globalVar = 10;
// 全局静态变量
static int globalStaticVar = 20;
// 函数声明
void exampleFunction();
int main() {
// 局部变量
int localVar = 30;
std::cout << "Global variable value: " << globalVar << std::endl;
std::cout << "Global static variable value: " << globalStaticVar << std::endl;
std::cout << "Local variable value: " << localVar << std::endl;
exampleFunction();
exampleFunction();
exampleFunction();
return 0;
}
// 函数定义
void exampleFunction() {
// 局部静态变量
static int staticVar = 0;
// 输出各个变量的值
std::cout << "Global variable value: " << globalVar << std::endl;
std::cout << "Global static variable value: " << globalStaticVar << std::endl;
std::cout << "Static variable value: " << staticVar << std::endl;
// 将静态变量递增
staticVar++;
}
```
在这个程序中,我们定义了一个全局变量 `globalVar` 和一个全局静态变量 `globalStaticVar`,它们可以在程序的任何地方访问。在 `main()` 函数中,我们定义了一个局部变量 `localVar`,它只能在 `main()` 函数中访问。
我们还定义了一个函数 `exampleFunction()`,其中包含一个局部静态变量 `staticVar`,它只能在 `exampleFunction()` 函数内部访问。
在 `main()` 函数中,我们输出了各个变量的值,并调用了三次 `exampleFunction()` 函数。在 `exampleFunction()` 函数中,我们输出了各个变量的值,并将静态变量 `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
```
我们可以看到,全局变量、全局静态变量、局部变量在任何地方都可以访问,而局部静态变量只能在函数内部访问。同时,全局变量和全局静态变量的值在整个程序的生命周期中都是保持不变的,而局部变量和局部静态变量的值只在函数调用期间存在。
设计一个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
```
我们可以看到,全局变量、全局静态变量、局部变量在任何地方都可以访问,而局部静态变量只能在函数内部访问。同时,全局变量和全局静态变量的值在整个程序的生命周期中都是保持不变的,而局部变量和局部静态变量的值只在函数调用期间存在。
此外,全局变量可以被不同的函数访问和修改,而全局静态变量只能在定义它的文件中访问和修改。局部变量和局部静态变量只能在它们所在的函数中访问和修改。
阅读全文