C 语言中全局变量和静态变量的初始化


在 C 语言中,全局变量和静态变量都必须使用常量值进行初始化。这是因为这些变量必须在执行开始之前已知这些变量的值。如果未提供全局变量和静态变量的常量值,则会生成错误。

以下是一个演示全局变量和静态变量初始化的程序。

示例

 在线演示

#include <stdio.h>
int a = 5;
static int b = 10;
int main() {
   printf("The value of global variable a : %d", a);
   printf("
The value of global static variable b : %d", b);    return 0; }

输出

上面程序的输出如下。

The value of global variable a : 5
The value of global static variable b : 10

现在,让我们理解一下上面程序的原理。

全局变量 a 的值为 5,静态变量 b 的值为 10。因此,该程序按需工作。

如果不使用常量来初始化全局变量和静态变量,这将导致错误。以下是一个演示此错误的程序。

#include <stdio.h>
int func() {
   return 25;
}
int main() {
   static int a = func();
   printf("%d ", a);
}

上面的程序导致了一个“初始化元素不是常量”的错误。因此,全局变量和静态变量只能使用常量进行初始化。

更新于:2020 年 6 月 26 日

4K+ 次浏览

开启你的职业

完成课程以获得认证

开始
广告