ตัวแปรสแตติกในเครื่องเป็นตัวแปรซึ่งอายุการใช้งานไม่ได้หยุดลงด้วยการเรียกใช้ฟังก์ชันเมื่อมีการประกาศ ยืดอายุการใช้งานของโปรแกรมที่สมบูรณ์ การเรียกใช้ฟังก์ชันทั้งหมดใช้สำเนาของตัวแปรสแตติกในเครื่องเดียวกัน
ตัวแปรเหล่านี้ใช้เพื่อนับจำนวนครั้งที่เรียกใช้ฟังก์ชัน ค่าดีฟอลต์ของตัวแปรสแตติกคือ 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