ในภาษา C คุณสมบัติของตัวแปรและฟังก์ชันจะอธิบายโดยคลาสการจัดเก็บข้อมูล เช่น การมองเห็นและขอบเขตของตัวแปรหรือฟังก์ชัน q
คลาสการจัดเก็บข้อมูลในภาษา C มีสี่ประเภท ได้แก่ ตัวแปรอัตโนมัติ ตัวแปรภายนอก ตัวแปรคงที่ และตัวแปร Register
อัตโนมัติ
คลาสการจัดเก็บอัตโนมัติเป็นคลาสการจัดเก็บเริ่มต้นสำหรับตัวแปรในเครื่องทั้งหมด มันถูกสร้างขึ้นเมื่อมีการเรียกใช้ฟังก์ชัน เมื่อการทำงานของฟังก์ชันเสร็จสิ้น ตัวแปรจะถูกทำลายโดยอัตโนมัติ
พวกเขายังเป็นที่รู้จักกันในนามตัวแปรท้องถิ่นเนื่องจากเป็นโลคัลสำหรับฟังก์ชัน โดยค่าเริ่มต้น คอมไพเลอร์จะกำหนดค่าขยะ
ขอบเขต − ตัวแปรอัตโนมัติคือตัวแปรท้องถิ่นของบล็อกฟังก์ชัน
ค่าเริ่มต้น − ค่าขยะเป็นค่าเริ่มต้นเริ่มต้น
อายุการใช้งาน − อายุการใช้งานของตัวแปรอัตโนมัติถูกผูกไว้โดยบล็อกที่กำหนดไว้
นี่คือตัวอย่างตัวแปรอัตโนมัติในภาษา C
ตัวอย่าง
#include <stdio.h> int main() { auto int a = 28; int b = 8; printf("The value of auto variable : %d\n", a); printf("The sun of auto variable & integer variable : %d", (a+b)); return 0; }
ผลลัพธ์
The value of auto variable : 28 The sun of auto variable & integer variable : 36
ภายนอก
ตัวแปรภายนอกเรียกอีกอย่างว่าตัวแปรส่วนกลาง ตัวแปรเหล่านี้ถูกกำหนดไว้นอกฟังก์ชัน ตัวแปรเหล่านี้มีอยู่ทั่วโลกตลอดการทำงานของฟังก์ชัน ค่าของตัวแปรส่วนกลางสามารถแก้ไขได้โดยฟังก์ชัน
ขอบเขต − ไม่ผูกมัดด้วยฟังก์ชันใดๆ มีทุกที่ในโปรแกรม เช่น ทั่วโลก
ค่าเริ่มต้น − ค่าเริ่มต้นเริ่มต้นของตัวแปรส่วนกลางคือศูนย์
อายุการใช้งาน − จนจบการทำงานของโปรแกรม
นี่คือตัวอย่างตัวแปรภายนอกในภาษา C
ตัวอย่าง
#include <stdio.h> extern int x = 32; int b = 8; int main() { auto int a = 28; extern int b; printf("The value of auto variable : %d\n", a); printf("The value of extern variables x and b : %d,%d\n",x,b); x = 15; printf("The value of modified extern variable x : %d\n",x); return 0; }
ผลลัพธ์
The value of auto variable : 28 The value of extern variables x and b : 32,8 The value of modified extern variable x : 15
คงที่
ตัวแปรสแตติกเริ่มต้นเพียงครั้งเดียว คอมไพเลอร์คงตัวแปรไว้จนสิ้นสุดโปรแกรม ตัวแปรคงที่สามารถกำหนดได้ทั้งภายในและภายนอกฟังก์ชัน
ขอบเขต − พวกมันอยู่ในพื้นที่ของบล็อก
ค่าเริ่มต้น − ค่าเริ่มต้นเริ่มต้นคือศูนย์
อายุการใช้งาน − จนจบการทำงานของโปรแกรม
นี่คือตัวอย่างตัวแปรสแตติกในภาษาซี
ตัวอย่าง
#include <stdio.h> int main() { auto int a = -28; static int b = 8; printf("The value of auto variable : %d\n", a); printf("The value of static variable b : %d\n",b); if(a!=0) printf("The sum of static variable and auto variable : %d\n",(b+a)); return 0; }
ผลลัพธ์
The value of auto variable : -28 The value of static variable b : 8 The sum of static variable and auto variable : -20
ลงทะเบียน
รีจิสเตอร์ตัวแปรบอกให้คอมไพเลอร์เก็บตัวแปรในการลงทะเบียน CPU แทนหน่วยความจำ ตัวแปรที่ใช้บ่อยจะถูกเก็บไว้ในรีจิสเตอร์และสามารถเข้าถึงได้เร็วกว่า เราไม่สามารถรับที่อยู่ของตัวแปรเหล่านี้ได้
ขอบเขต − พวกมันอยู่ในฟังก์ชัน
ค่าเริ่มต้น − ค่าเริ่มต้นเริ่มต้นคือค่าขยะ..
อายุการใช้งาน − จนกว่าจะสิ้นสุดการดำเนินการของบล็อกที่กำหนดไว้
นี่คือตัวอย่างตัวแปร register ในภาษา C
ตัวอย่าง
#include <stdio.h> int main() { register char x = 'S'; register int a = 10; auto int b = 8; printf("The value of register variable b : %c\n",x); printf("The sum of auto and register variable : %d",(a+b)); return 0; }
ผลลัพธ์
The value of register variable b : S The sum of auto and register variable : 18