Bài 2 : Biến và Kiểu dữ liệu - Lý Thuyết
Giới thiệu:
- Bất cứ chương trình ứng dụng nào cần xử lý dữ liệu cũng cần có nơi để lưu trữ tạm thời dữ liệu ấy. Nơi mà dữ liệu được lưu trữ gọi là bộ nhớ. Những vị trí khác nhau trong bộ nhớ có thể được xác định bởi các địa chỉ duy nhất. Những ngôn ngữ lập trình trước đây yêu cầu các lập trình viên quản lý mỗi vị trí ô nhớ thông qua địa chỉ, cũng như giá trị lưu trong nó. Các lập trình viên dùng những địa chỉ này để truy cập hoặc thay đổi nội dung của các ô nhớ. Khí ngôn ngữ lập trình phát triển, việc truy cập hay thay đổi giá trị ô nhớ đã được đơn giản hóa nhờ sự ra đời của khái niệm biến.
1. Biến (variable)
- Một chương trình ứng dụng có thể quản lý nhiều loại dữ liệu. Trong trường hợp này, chương trình phải chỉ định bộ nhớ cho mỗi đơn vị dữ liệu. Khi chỉ định bộ nhớ, có hai điểm cần lưu ý như sau :
+ Bao nhiêu bộ nhớ sẽ được gán.
+ Mỗi đơn vị dữ liệu được lưu trữ ở đâu trong bộ nhớ.
- Trước đây, các lập trình viên phải viết chương trình theo ngôn ngữ máy 1 và 0. Nếu muốn lưu giữ một giá trị tạm thồi, vị trí chính xác nơi mà dữ liệu được lưu trữ trong bộ nhớ máy tính phải được chỉ định. Vị trí này là một con số cụ thể, gọi là địa chỉ bộ nhớ.
- Các ngôn ngữ lập trình hiện đại cho phép chúng ta sử dụng các tên tượng trưng gọi là biên (variable), chỉ để một vùng bộ nhớ nơi mà các giá trị cụ thể được lưu trữ.
- Kiểu dữ liệu quyết định tổng số bộ nhớ được chỉ định. Những tên được gán cho biên giúp chúng ta sử dụng lại dữ liệu khi cần đến. Không giới hạn về số vị trí bộ nhớ mà một chương trình có thể dùng.
- Trong khi một số ngôn ngữ lập trình cho phép hệ điều hành xóa nội dung trong ô nhớ và cấp phát bộ nhớ này để dùng lại thì những ngôn ngữ khác như C yêu cầu lập trình viên xóa vùng nhớ không sử dụng thông qua mã chương trình. Trong cả hai trường hợp hệ điều hành sẽ lo việc cấp phát và thu hồi ô nhớ.
2. Hằng (constant)
- Trong trường hợp ta dùng biến, giá trị được lưu sẽ thay đổi. Một biến tồn tại từ lúc khai báo đến khi thoát khỏi phạm vi dùng nó. Những câu lênh trong phạm vi khối mã này có thể truy cập giá trị của biến, và thậm chí có thể thay đổi giá trị của biến. Trong thực tế, đôi khi cần sử dụng môt vài khoản mục mà giá trị của chúng không bao giờ bị thay đổi.
- Và một hằng là một giá trị không bao giờ bị thay đổi.
3. Định danh (Identifier)
- Tên của các biến (variable), các hàm (functions), các nhãn (labels) và các đổi tượng khác nhau do người dùng định nghĩa gọi là đinh danh. Những định danh này có thể chứa một hay nhiều ký tự. Ký tự đầu tiên của định danh phải là một chữ cái hay một dấu gạch dưới "_". Các ký tự tiếp theo có thể là các chữ cái, các con số hay dấu gạch chân.
- Các nguyên tắc cho việc đặt tên :
+ Tên biến phải bắt đầu bằng một ký tự chữ cái.
+ Các ký tự theo sau ký tự đầu bằng một chuỗi các chữ cái hoặc con số và cũng có thể bao gồm ký tự đặc biệt như dấu gạch dưới.
+ Tránh dùng ký tự O tại những vị trí mà có thể gây nhầm lẫn với số 0 và tương tự chữ cái l (chữ thường của chữ hoa L) có thể nhầm lẫn với số 1.
+ Tên riêng tránh đặt cho biến.
+ Theo tiêu chuẩn của C các chữ cái thường và hoa thi xem như khác nhau.
+ Việc phân biệt chữ hoa chữ thường khác nhau tùy theo ngôn ngữ lập trình. Do đó, tốt nhất nên đặt tên cho biến theo cách thức chuẩn.
+ Tên một biến nên có ý nghĩa, gợi tả và mô tả rõ kiểu dữ liệu của nó.
4. Từ khóa (keywords)
- Tất cả các ngôn ngữ dành một số từ nhất định cho mục đích riêng. Những từ này có một ý nghĩa đặc biệt trong ngữ cảnh của từng ngôn ngữ, và được xem là "từ khóa". Khi đặt tên cho các biến, chúng ta cầm bảo đảm rằng không dùng bất cứ từ khóa nào làm tên biến.
- Tên kiểu dữ liệu tất cả được coi là từ khóa.
5. Các kiểu dữ liệu (Data types)
- Có các loại kiểu dữ sau được lưu trữ trong biến ở trong C là :
+ int là một số nguyên, về cơ bản nó biểu thị kich cỡ tự nhiên của các số nguyên (integers).
+ float và double được dùng cho các số có dấu chấm động. Kiểu float (số thực) chiếm 4 bytes và có thể có tới 6 con số phần sau dấu thập phân, trong khi double chiếm 8 bytes và có thể có tới 10 con số phần thập phân.
+ char chiếm 1 byte và có khả năng lưu một ký tự đơn (character).
+ void được dùng điển hình để khai báo biến một hàm không trả về giá trị. Điều này sẽ được nói rõ hơn trong phần hàm.
- Dung lượng nhớ và phạm vi giá trị của những kiểu này thay đổi theo mỗi loại bộ xử lý và việc cài đặt các trình biên dịch C khác nhau.
- Những kiểu dữ liệu cơ bản và dẫn xuất. Đó là những bổ từ (modifier) được sử dụng để thay đổi kiểu dữ liệu cơ bản nhằm phù hợp với các tình huống đa dạng. Ngoại trừ kiểu void, tất cả các kiểu dữ liệu khác có thể cho phép những bổ tự đứng trước chúng. Bổ từ được sử dụng với C là:
+ signed, unsigned, long và short, long, double.
+ signed : có dấu, unsigned : không dấu
+ long : tăng chiều *** của miền giá trị, double : gấp đôi miền giá trị.
- Các kiểu dữ liệu và pham vi.
6. Các toán tử số học (Arithmetic Operators)
- Những toán tử số học được sử dụng để thức hiện những thao tác mang tính số học. Chúng được chia thành hai lớp : Toán tử số học một ngôi (unary) và toán tử số học hai ngôi (binary).
- Các toán tử số học và chức năng của chúng.
Hết bài thứ 2
Bài tập tự làm
- Tính giá trị của các biến sau mỗi câu lệnh dưới đây.
a. int a = 4^4
b. int a = 23.34
c. a = 10
b = a + a++
d. a = -5
b = -a