Một biến là một tên được liên kết với một giá trị có thể thay đổi được. Ví dụ khi tôi viết int num=20;
ở đây tên biến là num được liên kết với giá trị 20, int là kiểu dữ liệu đại diện rằng biến này có thể chứa các giá trị nguyên. Chúng tôi sẽ đề cập đến các kiểu dữ liệu trong hướng dẫn tiếp theo. Trong hướng dẫn này, chúng ta sẽ thảo luận về các biến.
Cú pháp khai báo một biến trong C ++
data_type variable1_name = value1 , variable2_name = value2; |
Ví dụ:
int num1 = 20 , num2 = 100; |
Chúng ta cũng có thể viết nó như thế này:
int num1 , num2 ; num1 = 20 ; num2 = 100 ; |
Các loại biến
Các biến có thể được phân loại dựa trên kiểu dữ liệu của chúng. Ví dụ, trong ví dụ trên, chúng ta đã thấy các biến kiểu số nguyên. Sau đây là các loại biến có sẵn trong C ++.
int : Loại biến này giữ giá trị nguyên.
char : giữ giá trị ký tự như ‘c’, ‘F’, ‘B’, ‘p’, ‘q’, v.v.
bool : giữ giá trị boolean đúng hoặc sai.
double : giá trị dấu chấm động chính xác kép.
float : Giá trị dấu chấm động chính xác đơn.
Các loại biến dựa trên phạm vi của chúng
Trước khi đi sâu hơn, hãy thảo luận về phạm vi là gì trước. Khi chúng ta thảo luận về Chương trình Hello World , chúng ta đã thấy các dấu ngoặc nhọn trong chương trình như sau:
int main { // Một số mã } |
Bất kỳ biến nào được khai báo bên trong các dấu ngoặc nhọn này đều có phạm vi giới hạn trong các dấu ngoặc nhọn này, nếu bạn khai báo một biến trong hàm main () và cố gắng sử dụng biến đó bên ngoài hàm main () thì bạn sẽ gặp lỗi biên dịch.
Bây giờ chúng ta đã hiểu phạm vi là gì. Hãy chuyển sang các loại biến dựa trên phạm vi.
1. Biến toàn cục
2. Biến cục bộ
Biến toàn cầu
Một biến được khai báo bên ngoài bất kỳ hàm nào (bao gồm cả hàm chính) được gọi là biến toàn cục. Các biến toàn cục có phạm vi trong suốt chương trình, chúng có thể được truy cập ở bất kỳ đâu trong chương trình, trong main, trong hàm do người dùng định nghĩa, ở bất kỳ đâu.
Hãy lấy một ví dụ để hiểu nó:
Ví dụ về biến toàn cục
Ở đây chúng ta có một biến toàn cục myVar
, được khai báo bên ngoài main. Chúng tôi đã truy cập biến hai lần trong hàm main () mà không gặp vấn đề gì.
#include <iostream> using namespace std ; // Đây là một biến toàn cục char myVar = 'A' ; int main () { cout << "Giá trị của myVar:" << myVar << endl ; myVar = 'Z' ; cout << "Giá trị của myVar:" << myVar ; trả về 0 ; } |
Biến cục bộ
Các biến cục bộ được khai báo bên trong dấu ngoặc nhọn của bất kỳ hàm do người dùng định nghĩa, hàm chính, vòng lặp hoặc bất kỳ câu lệnh điều khiển nào (if, if-else, v.v.) và có phạm vi giới hạn bên trong các dấu ngoặc nhọn đó.
Ví dụ về biến cục bộ
#include <iostream> using namespace std ; char myFuncn () { // Đây là một biến cục bộ char myVar = 'A' ; } int main () { cout << "Giá trị của myVar:" << myVar << endl ; myVar = 'Z' ; cout << "Giá trị của myVar:" << myVar ; trả về 0 ; } |
Đầu ra:
Lỗi thời gian biên dịch, vì chúng tôi đang cố gắng truy cập biến myVar
bên ngoài phạm vi của nó. Phạm vi của myVar
được giới hạn trong cơ thể của hàm myFuncn()
, bên trong những mắc cài đó.
Biến cục bộ và cục bộ có thể có cùng tên trong C ++ không?
Hãy xem một ví dụ có cùng tên toàn cục và biến cục bộ.
#include <iostream> using namespace std; // This is a global variable char myVar = 'A'; char myFuncn() { // This is a local variable char myVar = 'B'; return myVar; } int main() { cout <<"Funcn call: "<< myFuncn()<<endl; cout <<"Value of myVar: "<< myVar<<endl; myVar='Z'; cout <<"Funcn call: "<< myFuncn()<<endl; cout <<"Value of myVar: "<< myVar<<endl; return 0; } |
Đầu ra:
Funcn call: B Value of myVar: A Funcn call: B Value of myVar: Z |
Như bạn có thể thấy rằng khi tôi thay đổi giá trị của myVar
trong hàm main, nó chỉ thay đổi giá trị của biến toàn cục myVar
vì myVar
phạm vi biến cục bộ bị giới hạn trong hàm myFuncn()
.