Mỗi biến trong C++ có một kiểu cụ thể, quyết định kích thước, bố cục bộ nhớ, dải giá trị lưu trữ và tập hợp phép toán áp dụng. Khai báo biến theo cú pháp:
kiểu tên_biến;
Kiểu có thể là kiểu nguyên thủy (int, bool, float, char...), kiểu liệt kê, con trỏ hoặc kiểu phức tạp do cấu trúc/lớp định nghĩa.
Phạm vi biến (Variable Scope)
Phạm vi là vùng chương trình, có 3 nơi khai báo biến:
- Bên trong hàm hoặc khối lệnh – biến cục bộ (local variables).
- Trong định nghĩa tham số hàm – tham số hình thức (formal parameters).
- Bên ngoài tất cả hàm – biến toàn cục (global variables).
Biến cục bộ chỉ dùng được bởi câu lệnh bên trong hàm/khối đó. Chúng không được biết đến bởi các hàm khác.
Ví dụ biến cục bộ
#include <iostream>
using namespace std;
int main() {
int a, b, c;
a = 10; b = 20;
c = a + b;
cout << c;
return 0;
}
Đầu ra
30
Biến toàn cục được định nghĩa ngoài mọi hàm, thường ở đầu chương trình. Chúng giữ giá trị suốt vòng đời chương trình. Bất kỳ hàm nào cũng có thể truy cập.
Ví dụ biến toàn cục
#include <iostream>
using namespace std;
int g; // toàn cục
int main() {
int a = 10, b = 20;
g = a + b;
cout << g;
return 0;
}
Đầu ra
30
Chương trình có thể có biến cục bộ và toàn cục trùng tên, nhưng biến cục bộ ưu tiên. Để truy cập biến toàn cục trùng tên, dùng toán tử phân giải phạm vi ::.
Ví dụ trùng tên
#include <iostream>
using namespace std;
int g = 20; // toàn cục
int main() {
int g = 10; // cục bộ
cout << g; // cục bộ: 10
cout << ::g; // toàn cục: 20
return 0;
}
Đầu ra
10 20