1. 主页
  2. 文档
  3. C语言教程
  4. C语言存储类
  5. C中静态变量的初始化

C中静态变量的初始化

在 C 中,静态变量只能使用常量字面量进行初始化。例如,以下程序编译失败。

#include<stdio.h>
int initializer(void)
{
return 50;
}

int main()
{
static int i = initializer();
printf(" value of i = %d", i);
getchar();
return 0;
}

如果我们将程序更改为以下程序,则它可以正常工作。

#include<stdio.h>
int main()
{
static int i = 50;
printf(" value of i = %d", i);
getchar();
return 0;
}

原因很简单:所有具有静态存储持续时间的对象都必须在 main() 开始执行之前进行初始化(设置为其初始值)。因此,翻译时未知的值不能用于静态变量的初始化。

 

 

这篇文章对您有用吗?