37 ขอบเขตของตัวแปร


  • หมายถึงความสามารถและลิมิตในการเข้าถึง เข้าใช้ตัวแปรนั้นๆ
  • ตัวแปรแต่ละตัวจะมีอายุเรียกว่ lifetime : บอกว่าจะถูกลบทิ้งจากหน่วยความจำเมื่อใด
  • External variable หมายถึงตัวแปรที่ประกาศนอกฟังก์ชั่นทั้งหมด เช่นหลังจาก #include หรือ #define
  • Local variable จะประกาศภายในฟังก์ชั่น
  • Automatic variable โปรแกรมจะทำการสร้างเมื่อฟังก์ชั่นถูกเรียก และทำการลบเมื่อฟังก์ชั่นจบการทำงานโดยอัตโนมัต. ดังนั้น การเรียกฟังก์ชั่นแต่ละครั้งก็จะไม่ใช่ค่าเดิม
  • Static variable คือตัวแปรที่จะลบออกจากหน่วยความจำก็ต่อเมื่อโปรแกรมทำงานเสร็จสิ้น และก่อนที่โปรแกรมจะปิดตัวลง. ดังนั้น ค่าของ static variable จะอยู่อย่างนั้น
  • การประกาศ static variable ใน main() ฟังก์ชั่น ไม่ก่อประโยชน์อะไรขึ้นมาเลย
  • Global variable ถ้าประกาศแล้วไม่ได้ตั้งค่า ค่ามาตรฐานจะเป็น 0 (แต่ไม่ควรวางใจตรงนี้)
  • Local variable ถ้าประกาศแล้วไม่ได้ตั้งค่า จะเป็นค่าอะไรก็ได้ ไม่มีค่ามาตรฐาน
  • extern เป็นคียร์เวิร์ด เป็นตัวบอกว่าตัวแปลที่ประกาศหลังการนี้ ถูกประกาศไว้แล้วที่อื่น และให้ไปใช้ในส่วนของที่นั้น
  • static เป็นคียร์เวิร์ด บอกให้โปรแกรมทำการรักษาค่าของมันไว้ แม้ว่าฟังก์ชั่นจะถูกทำลายไปแล้วก็ตาม


No comments:

Post a Comment