Biến (Variable)
1. Giới thiệu về Biến
Phần tiêu đề “1. Giới thiệu về Biến”Biến giống như một “chiếc hộp” lưu trữ dữ liệu để dùng lại sau này. Trong C++, bạn phải khai báo kiểu dữ liệu của biến khi tạo nó, vì C++ là ngôn ngữ kiểu tĩnh (statically typed).
#include <iostream>
int main() { int year = 2025; // Khai báo biến kiểu int, gán giá trị 2025 int next_year = year + 1; // Dùng biến year khi cần std::cout << year << std::endl;
std::string message = "Hello C++"; // Khai báo biến kiểu string
return 0;}Cú pháp khai báo: <kiểu dữ liệu> <tên biến> = <giá trị>;
2. Khai báo trước, gán giá trị sau
Phần tiêu đề “2. Khai báo trước, gán giá trị sau”C++ cho phép khai báo biến trước mà chưa gán giá trị:
int age; // Khai báo, chưa có giá trị (giá trị "rác" - undefined)age = 20; // Gán giá trị sau
int score = 100; // Khai báo và gán cùng lúc (khuyến nghị)⚠️ Lưu ý: một biến được khai báo mà chưa khởi tạo giá trị sẽ chứa một giá trị rác không xác định trong bộ nhớ - đọc giá trị đó trước khi gán là lỗi tiềm ẩn (undefined behavior). Luôn khởi tạo giá trị ngay khi khai báo.
3. Kiểu dữ liệu cố định - không thể đổi kiểu
Phần tiêu đề “3. Kiểu dữ liệu cố định - không thể đổi kiểu”Một khi đã khai báo kiểu, biến không thể chứa giá trị của kiểu khác:
int fruit = 5;// fruit = "apple"; // LỖI BIÊN DỊCH! Không thể gán chuỗi cho biến intfruit = 10; // OK, vẫn là intKiểu dữ liệu của biến được xác định ngay từ khi khai báo và không thể thay đổi trong suốt vòng đời của biến đó.
4. Gán giá trị cho nhiều biến
Phần tiêu đề “4. Gán giá trị cho nhiều biến”int a = 1, b = 2, c = 3; // Khai báo nhiều biến cùng kiểu trên một dòngstd::cout << a << " " << b << " " << c << std::endl;
int x = 10, y = 10, z = 10; // Cùng giá trị (phải lặp lại giá trị cho từng biến)C++ không có cú pháp gán đồng thời nhiều biến bằng nhiều giá trị khác nhau trên một dòng (kiểu a, b, c = 1, 2, 3) - trừ khi dùng std::tie với std::tuple (sẽ học ở bài sau).
5. Quy tắc đặt tên biến
Phần tiêu đề “5. Quy tắc đặt tên biến”- Tên phải bắt đầu bằng chữ cái hoặc dấu gạch dưới (
_), không được bắt đầu bằng số.- Hợp lệ:
name,_value - Không hợp lệ:
1age
- Hợp lệ:
- Chỉ chứa chữ cái, chữ số và dấu gạch dưới - không dùng ký tự đặc biệt (
*,-,#…). - Phân biệt chữ hoa/chữ thường:
fruitvàFruitlà hai biến khác nhau. - Không được trùng với từ khóa (keyword) của C++ như
int,class,if,for… - Không được có khoảng trắng trong tên biến.
Quy ước phổ biến: snake_case (như total_sum) hoặc camelCase (như totalSum) - tùy theo coding style của dự án.
6. Nối chuỗi và in nhiều biến
Phần tiêu đề “6. Nối chuỗi và in nhiều biến”#include <iostream>#include <string>
int main() { std::string message = "I love " + std::string("C++."); std::cout << message << std::endl; // I love C++.
std::string language = "C++"; int year = 2025; std::cout << language << " " << year << std::endl; // C++ 2025
return 0;}Lưu ý: nối một chuỗi ký tự C-style ("I love ") trực tiếp với một chuỗi C-style khác bằng + sẽ không biên dịch được - ít nhất một trong hai bên phải là std::string.
Tổng kết
Phần tiêu đề “Tổng kết”- Biến trong C++ phải khai báo kiểu dữ liệu, kiểu này không thay đổi trong suốt vòng đời của biến
- Nên luôn khởi tạo giá trị ngay khi khai báo biến, tránh giá trị rác
- Quy tắc đặt tên: không bắt đầu bằng số, không dùng ký tự đặc biệt, không trùng từ khóa C++