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); }
上面的程式導致了一個“初始化元素不是常量”的錯誤。因此,全域性變數和靜態變數只能使用常量進行初始化。
廣告