ตัวแปรโกลบอลและสแตติกถูกกำหนดค่าเริ่มต้นเป็นค่าดีฟอลต์ เนื่องจากอยู่ในมาตรฐาน C หรือ C++ และกำหนดค่าเป็นศูนย์ได้ฟรีในขณะที่คอมไพล์ ทั้งตัวแปรแบบคงที่และแบบโกลบอลจะทำงานเหมือนกันกับโค้ดอ็อบเจ็กต์ที่สร้างขึ้น ตัวแปรเหล่านี้ได้รับการจัดสรรในไฟล์ .bss และในขณะที่โหลด ตัวแปรจะจัดสรรหน่วยความจำโดยการรับค่าคงที่ที่จัดสรรให้กับตัวแปร
ต่อไปนี้คือตัวอย่างตัวแปรโกลบอลและสแตติก
ตัวอย่าง
#includeint a;static int b;int main() { int x; คงที่ int y; int z =28; printf("ค่าเริ่มต้นของตัวแปรโกลบอล a :%d", a); printf("\nค่าเริ่มต้นของตัวแปรสแตติกส่วนกลาง b :%d", b); printf("\nค่าเริ่มต้นของตัวแปรท้องถิ่น x :%d", x); printf("\nค่าเริ่มต้นของตัวแปรสแตติกในเครื่อง y :%d", y); printf("\nค่าของตัวแปรท้องถิ่น z :%d", z); คืนค่า 0;}
ผลลัพธ์
ค่าดีฟอลต์ของตัวแปรส่วนกลาง a :0ค่าดีฟอลต์ของตัวแปรสแตติกส่วนกลาง b :0ค่าดีฟอลต์ของตัวแปรโลคัล x :0ค่าดีฟอลต์ของตัวแปรสแตติกในเครื่อง y :0ค่าของตัวแปรโลคัล z :28
ในโปรแกรมข้างต้น ตัวแปรโกลบอลจะถูกประกาศนอกฟังก์ชัน main() และหนึ่งในนั้นคือตัวแปรสแตติก มีการประกาศตัวแปรโลคัลสามตัวและตัวแปร z ก็ถูกเตรียมใช้งานเช่นกัน
int a;static int b;….int x;static int y;int z =28;
ค่าเริ่มต้นจะถูกพิมพ์
printf("ค่าเริ่มต้นของตัวแปรโกลบอล a :%d", a);printf("\nค่าเริ่มต้นของตัวแปรสแตติกส่วนกลาง b :%d", b);printf("\nค่าเริ่มต้นของโลคัล ตัวแปร x :%d", x);printf("\nค่าดีฟอลต์ของตัวแปรสแตติกในเครื่อง y :%d", y);printf("\nค่าของตัวแปรโลคัล z :%d", z);ก่อน>