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+ 次瀏覽

開啟你的職業

完成課程以獲得認證

開始
廣告