ตัวแปรสแตติกในเครื่องเป็นตัวแปรซึ่งอายุการใช้งานไม่ได้หยุดลงด้วยการเรียกใช้ฟังก์ชันเมื่อมีการประกาศ ยืดอายุการใช้งานของโปรแกรมที่สมบูรณ์ การเรียกใช้ฟังก์ชันทั้งหมดใช้สำเนาของตัวแปรสแตติกในเครื่องเดียวกัน
ตัวแปรเหล่านี้ใช้เพื่อนับจำนวนครั้งที่เรียกใช้ฟังก์ชัน ค่าดีฟอลต์ของตัวแปรสแตติกคือ 0 ในขณะที่ขอบเขตโลคัลปกติระบุว่าตัวแปรที่กำหนดภายในบล็อกจะมองเห็นได้เฉพาะในบล็อกนั้นและมองไม่เห็นภายนอกบล็อก
ตัวแปรส่วนกลางซึ่งอยู่นอกบล็อกจะมองเห็นได้จนถึงจุดสิ้นสุดของโปรแกรม
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับตัวแปรท้องถิ่น -
#include<stdio.h>
main ( ){
int a=40 ,b=30,sum; //local variables life is within the block
printf ("sum=%d" ,a+b);
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
sum=70
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับตัวแปรส่วนกลาง -
int c= 30; /* global area */
main ( ){
int a = 10; //local area
printf ("a=%d, c=%d", a,c);
fun ( );
}
fun ( ){
printf ("c=%d",c);
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
a =10, c = 30
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับตัวแปรคงที่ในพื้นที่ -
#include <stdio.h>
void fun(){
static int x; //default value of static variable is 0
printf("%d ", a);
a = a + 1;
}
int main(){
fun(); //local static variable whose lifetime doesn’t stop with a function
call, where it is declared.
fun();
return 0;
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
0 1