Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ขอบเขตของตัวแปร (Scope of Variables) ใน C++

ขอบเขต (Scope) คือบริเวณของโปรแกรม โดยคร่าวๆ มี 3 สถานที่ที่ตัวแปรสามารถประกาศได้:

  • ภายในฟังก์ชันหรือบล็อก เรียกว่า ตัวแปรท้องถิ่น (Local Variables)
  • ในนิยามพารามิเตอร์ของฟังก์ชัน เรียกว่า พารามิเตอร์ทางการ (Formal Parameters)
  • นอกเหนือจากฟังก์ชันทั้งหมด เรียกว่า ตัวแปรกลาง (Global Variables)

เราจะเรียนรู้ฟังก์ชันและพารามิเตอร์ในบทต่อไป ตอนนี้มาอธิบายตัวแปรท้องถิ่นและกลาง

ตัวแปรท้องถิ่น (Local Variables)

ตัวแปรที่ประกาศภายในฟังก์ชันหรือบล็อก เป็นตัวแปรท้องถิ่น ใช้ได้เฉพาะคำสั่งภายในฟังก์ชันหรือบล็อกนั้นๆ ไม่รู้จักจากฟังก์ชันภายนอก

ตัวอย่าง

#include <iostream>
using namespace std;
int main() {
    int a, b, c; // Local variable declaration
    a = 10; b = 20; c = a + b; // actual initialization
    cout << c;
    return 0;
}

ตัวแปรกลาง (Global Variables)

ตัวแปรกลางประกาศนอกฟังก์ชันทั้งหมด มักอยู่ด้านบนของโปรแกรม คงค่าตลอดอายุของโปรแกรม เข้าถึงได้จากฟังก์ชันใดๆ

ตัวอย่าง

#include <iostream>
using namespace std;
int g; // Global variable declaration
int main() {
    int a, b; // Local variable declaration
    a = 10; b = 20; g = a + b;
    cout << g;
    return 0;
}

โปรแกรมอาจมีชื่อตัวแปรท้องถิ่นและกลางเหมือนกัน แต่ค่าตัวแปรท้องถิ่นภายในฟังก์ชันจะมีความสำคัญกว่า

ตัวอย่าง

#include <iostream>
using namespace std;
int g = 20; // Global
int main() {
    int g = 10; // Local
    cout << g; // แสดง 10
    return 0;
}

ผลลัพธ์

10

การเริ่มต้นค่า (Initializing) ตัวแปรท้องถิ่นและกลาง

ตัวแปรท้องถิ่นเมื่อประกาศแล้ว ไม่ได้ถูกเริ่มต้นค่าอัตโนมัติ ต้องเริ่มต้นเอง ตัวแปรกลางจะถูกเริ่มต้นอัตโนมัติโดยระบบ:

ชนิดข้อมูลค่าเริ่มต้น
int0
char'\0'
float0
double0
pointerNULL