在c语言里 在一个函数内部定义一个static int值为1能改变它的值吗
在C语言中,在一个函数内部定义一个static int变量,该变量的作用域仅限于该函数内部,但是该变量的存储空间是静态的,只会被分配一次。因此,每次调用该函数时,该变量的值会保持上次调用结束时的值,并且可以在函数内部改变它的值。
下面是一个示例代码,展示了如何在函数内部改变一个静态变量的值:
#include <stdio.h>
void incrementStaticVariable() {
static int staticVar = 1; // 在函数内部定义一个静态变量并初始化为1
staticVar++; // 修改静态变量的值
printf("Static variable value: %d\n", staticVar);
}
int main() {
incrementStaticVariable(); // 输出: Static variable value: 2
incrementStaticVariable(); // 输出: Static variable value: 3
incrementStaticVariable(); // 输出: Static variable value: 4
return 0;
}
在上述代码中,incrementStaticVariable()函数内部定义了一个静态变量staticVar并初始化为1。每次调用该函数时,静态变量的值都会自增1,并通过printf函数输出。
运行上述代码会输出以下结果:
Static variable value: 2
Static variable value: 3
Static variable value: 4
可以看到,每次调用incrementStaticVariable()函数时,静态变量的值都在上次调用结束时的基础上增加
原文地址: https://www.cveoy.top/t/topic/hXS2 著作权归作者所有。请勿转载和采集!