Biến trong C++ và cách sử dụng

303

Biến (variable) là khái niệm cơ bản nhất trong lập trình mà mọi ngôn ngữ đều sử dụng. Một chương trình được viết ra và chạy không thể thiếu các biến, nó giúp chúng ta lưu trữ giá trị tính toán, truyền nó tới các hàm, thành phần khác nhau trong source code. Bài viết hôm nay chúng ta cùng tìm hiểu về biến trong C++cách sử dụng thông qua các ví dụ cụ thể nhé.

Biến trong C++

Trong C++, biến là tên của một vị trí trong bộ nhớ, được sử dụng để lưu trữ dữ liệu. Mỗi biến trong C++ có một loại dữ liệu cụ thể, xác định rõ kích thước của bộ nhớ dành cho biến. 

Biến trong C++

 

Cú pháp khai báo biến:

<Kiểu dữ liệu> <Tên biến> = [Giá trị khởi tạo của biến];

Trong đó:

  • Kiểu dữ liệu: int, long, float, double, …
  • Tên biến: tên mà bạn đặt cho biến và sẽ được sử dụng trong suốt chương trình
  • Giá trị khởi tạo: đây là phần không bắt buộc, sẽ thực hiện gán giá trị cho biến ngay từ ban đầu

Chúng ta cũng có thể hiểu biến là một ô nhớ hay vùng nhớ (trên RAM) sẽ được hệ điều hành cấp phát cho chương trình C++ nhằm lưu trữ giá trị vào bên trong vùng nhớ đó. 

Ví dụ khai báo biến:

int valueInteger = 12;
float valueFloat = 5.394;
string myName = "Nguyen Van A";
int a, b = 10, c; // khai báo nhiều biến

Lưu ý khi đặt tên biến trong C++:

  • Tên biến không được bắt đầu bằng ký tự số
  • Tên biến không được chứa dấu cách hoặc các ký tự đặc biệt. Ngoài ra cũng không được trùng với các keyword có sẵn trong C++
  • Không được tồn tại 2 biến có cùng tên trong một khối lệnh { }, kể cả nếu chúng có khác kiểu dữ liệu.
  • Tên biến trong C++ có phân biệt chữ hoa và chữ thường, vì thế bạn có thể khai báo int bien_1int Bien_1 là 2 biến khác nhau.

Các kiểu biến trong C++

Có một vài kiểu biến trong C++ được phân chia theo phạm vi (biến local và biến global) và cách sử dụng (biến static, biến auto và biến external) khác nhau, bao gồm:

Các kiểu biến trong C++

1. Biến local (biến cục bộ)

Biến local hay biến cục bộ là biến được khai báo bên trong hàm hoặc một khối lệnh; nói cách khác thì biến sẽ được khai báo khi bắt đầu một khối.

void function1() {
    int x = 10; // biến local
}

Các biến cục bộ có phạm vi bên trong khối lệnh, chương trình sẽ không thể truy cập được biến khi ở ngoài khối lệnh. Biến cục bộ có tính chất tự động (automatic), nghĩa là sẽ được tạo tại thời điểm định nghĩa và bị hủy khi ra khỏi khối lệnh mà biến đó được khai báo.

2. Biến global (biến toàn cục)

Biến global hay biến toàn cục là biến được khai báo bên ngoài hàm hoặc khối lệnh, từ đó bất kỳ hàm nào cũng có thể sử dụng, thay đổi giá trị của biến.

int a = 20; // biến global

void function2() {
    a = 10; // sử dụng biến global
}

Biến toàn cục có phạm vi tệp tin (file scope); có tính chất tĩnh, nghĩa là chúng được tạo ra khi chương trình bắt đầu và chỉ được hủy khi nó kết thúc.

  Map trong C++ và các thao tác cơ bản

  Vòng lặp trong C++ là gì? 3 loại vòng lặp phổ biến trong C++

3. Biến static (biến tĩnh)

Biến static hay biến tĩnh là biến được tạo ra duy nhất một lần khi gọi hàm lần đầu tiên và nó tồn tại trong suốt vòng đời của chương trình.

Để khai báo biến tĩnh, chúng ta sử dụng từ khóa static

void function1() {
    int x = 10; // biến local
    static int y = 10; // biến static
    x = x + 1;
    y = y + 1;
    cout << "x = " << x << ", y = " << y <<endl;
}

int main() {
    function1(); //x = 11, y = 11
    function1(); //x = 11, y = 12
    function1(); //x = 11, y = 13
    return 0;
}

Ở ví dụ trên, biến y được khai báo static, do đó mỗi lần gọi hàm function1 thì giá trị y của lần gọi trước được cộng thêm 1, và ta có kết quả y sẽ nhận lần lượt giá trị 11, 12 và 13. Ngược lại với biến x, do chỉ là biến local nên mỗi lời gọi hàm, x sẽ được sinh ra và gán giá trị = 10; vì thế cả 3 lần gọi hàm chúng ta đều nhận được giá trị của x là 11.

4. Biến Automatic (biến tự động)

Trong C++, thông thường bạn cần xác định trước kiểu dữ liệu của biến mà bạn khai báo. Tuy nhiên từ phiên bản C++ 11 trở đi, từ khóa auto được thêm vào trước khai báo biến giúp chương trình tự động nhận dạng kiểu dữ liệu của biến thông qua kiểu dữ liệu khởi tạo ra nó.

char kietKyTu = 'C';
int kieuSo = 1;
float kieuFloat = 1.0F;
double kieuDouble = 1.0;

auto kietKyTu = 'C'; // 'C' là kiểu char => kietKyTu kiểu char
auto kieuSo = 1; // 1 là kiểu int => kieuSo kiểu int
auto kieuFloat = 1.0F; // 1.0F là kiểu float => kieuFloat kiểu float
auto kieuDouble = 1.0; // 1.0 là kiểu double => kieuDouble kiểu double

Một lưu ý khi sử dụng biến auto là bạn bắt buộc phải có giá trị khởi tạo khi sử dụng.

Xem thêm việc làm C++ hấp dẫn trên TopDev

5. Biến external (biến ngoài)

Biến external hay biến ngoài sử dụng từ khóa extern để khai báo biến giúp có thể chia sẻ sử dụng biến trong nhiều file mã nguồn C++ khác nhau. 

//myfile.h
extern int x = 10; // biến external (cũng là global)

//test.cpp
#include "myfile.h"

void printValue() {
    cout << "x: " << x; //x: 10
}

Kết bài

Qua bài viết trên, hy vọng các bạn đã nắm rõ được khái niệm biến trong C++, các loại biến, phạm vi sử dụng cũng như cách khai báo trong chương trình. Nắm rõ được từ những khái niệm cơ bản nhất giúp bạn dễ dàng học và thực hành lập trình một cách dễ dàng hơn. Cảm ơn các bạn đã đọc bài và hẹn gặp lại trong các bài viết tiếp theo của mình.

Tác giả: Phạm Minh Khoa

Xem thêm:

Xem ngay tin đăng tuyển lập trình viên đãi ngộ tốt trên TopDev