c ++ ขอบเขตตัวแปร
ขอบเขตเป็นโครงการระดับภูมิภาคโดยทั่วไปมีสามสถานที่ที่คุณสามารถประกาศตัวแปร:
- ฟังก์ชั่นหรือตัวแปรประกาศภายในบล็อกของรหัสที่เรียกว่าตัวแปรท้องถิ่น
- ประกาศตัวแปรในความหมายของพารามิเตอร์ฟังก์ชั่นที่เรียกว่าพารามิเตอร์อย่างเป็นทางการ
- ตัวแปรทั้งหมดประกาศนอกฟังก์ชั่นที่เรียกว่าตัวแปรทั่วโลก
เราจะได้เรียนรู้ในบทต่อสิ่งที่เป็นฟังก์ชั่นและพารามิเตอร์ ในบทนี้ครั้งแรกที่เราอธิบายให้ประกาศตัวแปรท้องถิ่นและระดับโลก
ตัวแปรท้องถิ่น
ฟังก์ชั่นหรือตัวแปรประกาศภายในบล็อกของรหัสที่เรียกว่าตัวแปรท้องถิ่น พวกเขาสามารถนำมาใช้เฉพาะภายในฟังก์ชันหรือบล็อกของรหัสภายในคำสั่ง ตัวอย่างต่อไปนี้ใช้ตัวแปรท้องถิ่น:
#include <iostream> using namespace std; int main () { // 局部变量声明 int a, b; int c; // 实际初始化 a = 10; b = 20; c = a + b; cout << c; return 0; }
ตัวแปรทั่วโลก
ในตัวแปรทั้งหมดที่กำหนดไว้นอกฟังก์ชั่น (ปกติหัวของโปรแกรม) ที่รู้จักกันเป็นตัวแปรทั่วโลก ค่าของตัวแปรในโลกตลอดวงจรชีวิตทั้งหมดของโปรแกรมที่ถูกต้อง
ตัวแปรทั่วโลกสามารถเข้าถึงได้โดยฟังก์ชั่นใด ๆ ในคำอื่น ๆ ตัวแปรทั่วโลกครั้งหนึ่งเคยประกาศตลอดโปรแกรมที่มีอยู่ ตัวอย่างต่อไปนี้ใช้ตัวแปรโลกและท้องถิ่น:
#include <iostream> using namespace std; // 全局变量声明 int g; int main () { // 局部变量声明 int a, b; // 实际初始化 a = 10; b = 20; g = a + b; cout << g; return 0; }
ในโปรแกรมตัวแปรท้องถิ่นและตัวแปรทั่วโลกสามารถเหมือนกัน แต่ภายในฟังก์ชันตัวแปรท้องถิ่นจะแทนที่ค่าของตัวแปรโลก นี่คือตัวอย่าง:
#include <iostream> using namespace std; // 全局变量声明 int g = 20; int main () { // 局部变量声明 int g = 10; cout << g; return 0; }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
10
เริ่มต้นตัวแปรท้องถิ่นและระดับโลก
เมื่อตัวแปรท้องถิ่นมีการกำหนดระบบจะไม่เริ่มต้นคุณจะต้องเริ่มต้นด้วยตัวคุณเอง เมื่อคุณกำหนดตัวแปรทั่วโลกจะเริ่มต้นโดยอัตโนมัติเพื่อให้ค่าต่อไปนี้:
数据类型 | 初始化默认值 |
---|---|
int | 0 |
char | '\0' |
float | 0 |
double | 0 |
pointer | NULL |
ตัวแปรเริ่มต้นได้อย่างถูกต้องเป็นหลักปฏิบัติในการเขียนโปรแกรมที่ดีมิฉะนั้นโปรแกรมบางครั้งอาจก่อให้เกิดผลที่ไม่คาดคิด