1. Khái niệm biến
Biến là vùng bộ nhớ được cấp phát dùng để lưu trữ giá trị cho một kiểu dữ liệu nào đó tại một thời điểm nhất định và nó được truy xuất thông qua một tên đã được khai báo cho biến đó, một biến trong ngôn ngữ lập trình C trước khi được sử dụng nó phải được khai báo ở đầu mỗi khối lệnh.
Hình số 1: Vùng bộ nhớ lưu trữ biến
- Cú pháp khai báo biến: Kiểu_dữ liệu Tên_biến; trong đó Kiểu_dữ liệu sẽ xác định kiểu của dữ liệu và tên biến đó lưu trữ, Tên_biến là một định danh được gán cho vùng nhớ chứa biến và dùng để truy xuất giá trị của biến, dấu “;” dùng để xác định sự kết thúc của câu lệnh khai báo biến.
- Ví dụ : int integer1; Thì trình biên dịch sẽ cấp cho chương trình một khoảng bộ nhớ (2 Bytes) có tên tà integer1 dùng để lưu trữ giá trị của một số nguyên nào đó.
- Trong một dòng lệnh ta có thể khai báo nhiều biến cùng kiểu bằng các phân tách các biến đó bởi dấu phẩy “,” theo cú pháp như sau :
- Kiểu_dữ liệu Tên_biến_1, Tên_biến_2, Tên_biến_1 …, Tên_biến_n;
- Ví dụ : int integer1, integer2, integer3;
- Ví dụ :
Hình số 2 : Ví dụ khai báo biến
2. Đặc trưng của biến
Vị trí khai báo của biến : Là đặc trưng quan trọng nhất của biến, nó sẽ xác định phạm vi sử dụng và thời gian tồn tại của biến trong chương trình. Trong lập trình C người ta phân biệt 2 loại biến dựa trên vị trí khai báo đó là Biến toàn cục và Biến cục bộ.
- Biến toàn cục : Nếu một biến được khai báo ở bên ngoài khối lệnh (Nghĩa là ở bên ngoài các hàm) thí nó sẽ được gọi là biến toàn cục, phạm vi hoạt động của nó sẽ có giá trị từ vị trí khai báo đến hết chương trình. Nó có thể được truy xuất bởi bất cứ hàm nào bắt đầu từ vị trí khai báo đến hết chương trình, thời gian tồn tại của biến trong suốt thời gian chương trình hoạt động
- Biến cục bộ : Là biến được khai báo bên trong khối lệnh (Bên trong phạm vi của hàm), phạm vi sử dụng của biến là bên trong khối lệnh (Trong phạm vi của hàm), thời gian tồn tại của Biến là thời gian bắt đầu chương trình sử dụng khối lệnh đó đến khi chương trình kết thúc sử dụng khối lệnh.
3. Loại biến
Mỗi biến sau khi khai báo còn được đặc trưng bởi các từ khóa đi kèm phía trước như static, auto, extern, register, const,..
Từ khóa auto dùng để chỉ rõ tính cục bộ của biến được khai báo bên trong hàm, vì các bến này đương nhiên là biến cục bộ nên từ khóa này trong lập trình C ít sử dụng.
Từ khóa extern được sử dụng khi chương trình viết trên nhiều file, từ khóa register được sử dụng để xác định một biến cục bộ có thể được lưu trữ trong các thanh ghi SI, DI…do vậy biến sử dụng register thường để tăng tốc độ truy vấn thông tin gắn với vòng lặp.
Từ khóa static khi được sử dụng với biến toàn cục thì biến đó được gọi là biến tĩnh toàn cục, khi nó được sử dụng với biến cục bộ thì nó là biến tĩnh cục bộ, cả biến tĩnh toàn cục và cục bộ đều tồn tại (giá trị lưu trữ không bị mất đi) trong suốt quá trình chương trình chạy.
4. Phép gán
Bảng dưới đây mô tả các kiểu dữ liệu cơ bản trong lập trình C.\
Để thiết lập giá trị của một biến, người
ta thiết lập giá trị cho biến đó thông qua phép gán giá trị của biến.
Ví dụ :
height = 8; length = 10;
width = 12;
Trước khi thiết lập giá trị cho biến thì
biến đó cần phải được khai báo.
Ví dụ :
int height = 8; hoặc
int height;
height = 8;
Ngoài ra một biến có thể được gán giá trị
bằng một biểu thức. Ví dụ :
int volume = height * length* width;
5. Tự thiết lập giá trị cho biến
Nếu một biến chỉ được khai báo mà chưa
thiết lập giá trị ban đầu cho biến đó thì biến đó có thể tự thiết lập giá trị
ban đầu cho chính nó hoặc không tự thiết lập (Vấn đề tự thiết lập giá trị ban đầu
hay không phụ thuộc vào kiểu giá trị của biến). Đây là vấn đề của trình biên dịch
ngôn ngữ lập trình C/C++.
Một số trình biên dịch
không tự động khởi tạo hầu hết các
biến thành một giá trị nhất định (chẳng hạn như 0). Do đó, khi một biến được
gán một vị trí bộ nhớ bởi trình biên dịch, giá trị mặc định của biến đó là bất
cứ giá trị (rác) nào xảy ra ở vị trí bộ nhớ đó!
6. Các kiểu dữ liệu cơ bản
Bảng dưới đây mô tả các kiểu dữ liệu cơ bản trong lập trình C.
Hình số 3 : Các kiểu dữ liệu cơ bản
7. Hằng
Hằng là các đại lượng mà giá trị của nó không thay đổi trong quá trình thực hiện chương trình. Trong lập trình ngôn ngữ C có các loại hằng như sau :
- Hằng nguyên : Là hằng được khai báo kiểu nguyên
- Hằng long : Là hằng được khai báo kiểu long khác ở chỗ thêm chữ L hoặc l vào sau để biểu thị hằng đó là hằng long ví dụ 123L.
- Hằng số thực : Là hằng được khai báo kiểu số thực ví dụ float giatri = 123.56f;
- Hằng ký tự : Là trường hợp riêng được đặt giữa 2 dấu nháy đơn, ví dụ như ‘A’, ‘a’ hằng ký tự có thể được viết là ‘\x1x2x3’ trong đó x1, x2,x3 là hệ số đếm cơ số 8 mà giá trị x1x2x3 bằng mã ASCII của ký tự đó ví dụ ‘\142’ là hằng ký tự ‘b’.
- Một số hằng đặc biệt : Hằng đặc biệt được mô tả trong bảng sau
8. Tên hằng và biến hằng
Biến hằng là một loại biến mà giá trị của nó không thể thay đổi trong quá trình chương trình chạy, còn tên hằng là một loại hằng được định nghĩa bởi chỉ thị #define.
- Tên hằng được định nghĩa theo cú pháp sau : #define Ten Gia_Tri;
Lưu ý Tên hằng thông thường được khai báo bằng chữ Hoa.
Ví dụ :

Hình số 4 : Mô tả các sử dụng tên hằng