C++: Bài 5. Các loại biến

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Biến cung cấp vùng nhớ được đặt tên giúp chương trình của ta có thể thao tác được. Mỗi biến trong C++ có một kiểu cụ thể, xác định kích thước và cách bố trí bộ nhớ của biến; phạm vi giá trị có thể được lưu trữ trong bộ nhớ đó; và tập hợp các thao tác có thể áp dụng cho biến.

Tên của một biến có thể bao gồm các chữ cái, chữ số và ký tự gạch dưới. Nó phải bắt đầu bằng một chữ cái hoặc một dấu gạch dưới. Chữ hoa và chữ thường khác nhau vì C++ phân biệt chữ hoa chữ thường.

Có các loại biến cơ bản sau trong C++ đã được giải thích trong bài học trước:

Loại & Mô tả

bool

Lưu trữ giá trị true hoặc false.

char

Điển hình là một octet đơn (một byte). Đây là một kiểu số nguyên.

int

Kích thước tự nhiên nhất của số nguyên cho máy.

float

Một giá trị dấu chấm động chính xác duy nhất.

double

Giá trị dấu phẩy động có độ chính xác kép.

void

Đại diện cho sự vắng mặt của kiểu.

wchar_t

Một kiểu ký tự rộng.

C++ cũng cho phép định nghĩa nhiều loại biến khác nhau mà chúng ta sẽ trình bày trong các chương tiếp theo như Liệt kê, Con trỏ, Mảng, Tham chiếu, Cấu trúc dữ liệu và Lớp.

Phần sau sẽ trình bày cách định nghĩa, khai báo và sử dụng các loại biến khác nhau.

Định nghĩa biến trong C++

Định nghĩa biến cho trình biên dịch biết vị trí và dung lượng lưu trữ cần tạo cho biến. Định nghĩa biến chỉ định một kiểu dữ liệu và chứa danh sách một hoặc nhiều biến của kiểu đó như sau:

type variable_list;

Ở đây, kiểu phải là kiểu dữ liệu C++ hợp lệ bao gồm char, w_char, int, float, double, bool hoặc bất kỳ đối tượng nào do người dùng tạo, v.v. và danh sách biến có thể bao gồm một hoặc nhiều tên định danh được phân tách bằng dấu phẩy. Một số khai báo hợp lệ được hiển thị như sau:

int    i, j, k;
char   c, ch;
float  f, salary;
double d;

Dòng int i, j, k; khai báo và định nghĩa các biến i, j và k, hướng dẫn trình biên dịch tạo các biến có tên i, j và k kiểu int.

Các biến có thể được khởi tạo (gán giá trị ban đầu) trong khai báo của chúng. Bộ khởi tạo bao gồm một dấu bằng theo sau là một biểu thức hằng số như sau:

type variable_name = value;

Một số ví dụ:

extern int a = 3, b = 5; // to các biến a và b.
int c = 3, d = 5;        // to và khi to các biến c và d.
byte e = 22;             // to và khi to biến e.
char f = 'x';            // to và khi to biến f giá tr 'x'.

Đối với định nghĩa không có bộ khởi tạo: các biến có thời lượng lưu trữ tĩnh được khởi tạo ngầm định với NULL (tất cả các byte đều có giá trị 0); giá trị ban đầu của tất cả các biến khác là không xác định.

Khai báo biến trong C++

Một khai báo biến cung cấp sự đảm bảo cho trình biên dịch rằng có một biến tồn tại với kiểu và tên đã cho để trình biên dịch tiến hành biên dịch thêm mà không cần chi tiết đầy đủ về biến. Một khai báo biến chỉ có ý nghĩa tại thời điểm biên dịch, trình biên dịch cần định nghĩa biến thực tế tại thời điểm liên kết của chương trình.

Khai báo biến rất hữu ích khi bạn đang sử dụng nhiều tệp và bạn xác định biến của mình trong một trong các tệp sẽ có sẵn tại thời điểm liên kết chương trình. Bạn sẽ sử dụng từ khóa extern để khai báo một biến ở bất kỳ đâu. Mặc dù bạn có thể khai báo một biến nhiều lần trong chương trình C++, nhưng nó chỉ có thể được định nghĩa một lần trong một tệp, một hàm hoặc một khối mã.

Ví dụ

Hãy thử ví dụ sau trong đó một biến đã được khai báo ở trên cùng, nhưng nó đã được định nghĩa bên trong hàm main:

#include <iostream>
using namespace std;

// Khai báo các biến:
extern int a, b;
extern int c;
extern float f;

int main () {
  // Khai báo các biến:
  int a, b;
  int c;
  float f;

  // khi to giá tr  a = 10;
  b = 20;
  c = a + b;

  cout << c << endl ;

  f = 70.0/3.0;
  cout << f << endl ;

  return 0;
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

30
23.3333

Khái niệm tương tự áp dụng cho khai báo hàm khi bạn cung cấp tên hàm tại thời điểm khai báo và định nghĩa thực tế của nó có thể được đưa ra ở bất kỳ nơi nào.

Ví dụ:

// khai báo hàm
int func();
int main() {
  // gi hàm
  int i = func();
}

// đnh nghĩa hàm
int func() {
  return 0;
}

lvalue và rvalue

Có hai loại biểu thức trong C++:

  • lvalue: Các biểu thức tham chiếu đến một vị trí bộ nhớ được gọi là biểu thức "lvalue". Giá trị có thể xuất hiện ở dạng bên trái hoặc bên phải của phép gán (=).
  • rvalue: Thuật ngữ rvalue đề cập đến một giá trị dữ liệu được lưu trữ tại một số địa chỉ trong bộ nhớ. Giá trị là một biểu thức không thể có giá trị được gán cho nó, có nghĩa là giá trị có thể xuất hiện ở bên phải nhưng không xuất hiện bên trái của một phép gán.

Các biến là các giá trị và do đó có thể xuất hiện ở bên trái của một phép gán. Các chữ số là các giá trị và do đó có thể không được gán và không thể xuất hiện ở phía bên trái. Dưới đây là một lệnh hợp lệ:

int g = 20;

Nhưng nhưng dưới đây không phải là một câu lệnh hợp lệ và sẽ tạo ra lỗi thời gian biên dịch:

10 = 20;
» Tiếp: Bài 6. Phạm vi của biến
« Trước: Bài 4. Kiểu dữ liệu
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!