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

ตัวแปรท้องถิ่น (local) และตัวแปรกลาง (global) ใน C++ คืออะไร?

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

  • ภายในฟังก์ชันหรือบล็อก เรียกว่า ตัวแปรท้องถิ่น (local variables)
  • ในการกำหนดพารามิเตอร์ของฟังก์ชัน เรียกว่า พารามิเตอร์ทางการ (formal parameters)
  • นอกฟังก์ชันทั้งหมด เรียกว่า ตัวแปรกลาง (global variables)

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

ตัวอย่าง

#include <iostream>
using namespace std;
int main () {
    // ประกาศตัวแปรท้องถิ่น:
    int a, b;
    int c;
    // เริ่มต้นค่า
    a = 10;
    b = 20;
    c = a + b;
    cout << c;
    return 0;
}

ผลลัพธ์

30

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

ตัวอย่าง

#include <iostream>
using namespace std;
// ประกาศตัวแปรกลาง:
int g;
int main () {
    // ประกาศตัวแปรท้องถิ่น:
    int a, b;
    // เริ่มต้นค่า
    a = 10;
    b = 20;
    g = a + b;
    cout << g;
    return 0;
}

ผลลัพธ์

30

โปรแกรมอาจมีชื่อเดียวกันสำหรับตัวแปรท้องถิ่นและกลาง แต่ค่าของตัวแปรท้องถิ่นภายในฟังก์ชันจะมีความสำคัญกว่า สำหรับการเข้าถึงตัวแปรกลางที่มีชื่อเดียวกัน คุณจะต้องใช้ scope resolution operator (::)

ตัวอย่าง

#include <iostream>
using namespace std;
// ประกาศตัวแปรกลาง:
int g = 20;
int main () {
    // ประกาศตัวแปรท้องถิ่น:
    int g = 10;
    cout << g;  // ท้องถิ่น
    cout << ::g; // กลาง
    return 0;
}

ผลลัพธ์

10 20