📅  最后修改于: 2023-12-03 14:40:25.507000             🧑  作者: Mango
在C语言中,静态变量是使用static
关键字声明的变量,它具有在整个程序执行期间保持存储和值的特性。与自动变量不同,静态变量的生命周期不受函数或代码块的限制。
静态变量在声明时会分配内存空间,但如果没有显式地初始化,它们会被赋予默认值。默认值的具体取决于静态变量的类型和作用域:
int
、float
等),它们的默认值为0。char
),它们的默认值为'\0',即空字符。#include<stdio.h>
void testFunction() {
static int staticInt;
static char staticChar;
static float staticFloat;
static int* staticPointer;
printf("Static int: %d\n", staticInt);
printf("Static char: %c\n", staticChar);
printf("Static float: %.2f\n", staticFloat);
printf("Static pointer: %p\n", staticPointer);
}
int main() {
testFunction();
return 0;
}
Static int: 0
Static char:
Static float: 0.00
Static pointer: (nil)
在上面的示例中,testFunction
函数中声明了几个静态变量,并通过printf
函数打印它们的值。由于这些变量没有显式初始化,它们的值将是默认值。
staticInt
:默认为0。staticChar
:默认为空字符。staticFloat
:默认为0.00。staticPointer
:默认为空指针。需要注意的是,静态变量只会在第一次调用函数时初始化,之后的函数调用中,它们的值会保持上一次调用的结果。