ในภาษา 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