Tìm hiểu về Kiểu Dữ Liệu trong Lập Trình C

ảnh main

Lập trình không thể thiếu kiểu dữ liệu vì kiểu dữ liệu quyết định giá trị mà biến có thể lưu trữ. Trong lập trình, chúng ta sẽ thấy biến giống với những biến trong toán học như diện tích, chu vi, bán kính…

Trong bài viết này, chúng ta sẽ tìm hiểu về các kiểu dữ liệu trong ngôn ngữ lập trình C, biết được những giá trị mà chúng có thể lưu trữ cũng như giới hạn của chúng. Đồng thời, cũng cần học cách đặc tả đúng của từng kiểu dữ liệu.

Kiểu Dữ Liệu Chính

Có một số kiểu dữ liệu chính trong lập trình C, chúng ta cần nắm vững:

Kiểu dữ liệu Kích thước (byte) Giá trị có thể lưu Giới hạn có thể lưu Đặc tả (Format Specifier)
short 2 byte Số nguyên -32,768 -> 32,767 %hi
unsigned short 2 byte Số nguyên 0 -> 65,535 %hu
int 4 byte Số nguyên -2,147,483,648 -> 2,147,483,647 %d
unsigned int 4 byte Số nguyên 0 -> 4,294,967,295 %u
long long 8 byte Số nguyên -9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807 %lld
unsigned long long 8 byte Số nguyên 0 -> 18,446,744,073,709,551,615 %llu
char 1 byte Số nguyên, Ký tự -128 -> 127 %c
unsigned char 1 byte Số nguyên, Ký tự 0 -> 255 %c
float 4 byte Số thực 3.4E-38 -> 3.4E+38 %f
double 8 byte Số thực 1.7E-308 -> 1.7E+308 %lf

Kiểu Dữ Liệu Số Nguyên

Trong lập trình C, chúng ta không cần nhớ hết tất cả các kiểu dữ liệu số nguyên cũng như giới hạn của chúng. Chỉ cần nhớ hai kiểu phổ biến nhất là intlong long là đủ.

Một số lưu ý về kiểu dữ liệu số nguyên trong C:

  • Kiểu dữ liệu số nguyên không thể lưu được phần thập phân. Nếu muốn lưu số 3.14, bạn cần sử dụng kiểu dữ liệu số thực.
  • Kiểu dữ liệu số nguyên chia thành hai loại: số nguyên có dấu (signed) và không dấu (unsigned). Số nguyên không dấu chỉ lưu được các số không âm.
  • Khi gán giá trị vượt quá giới hạn lưu của kiểu dữ liệu số nguyên, kết quả sẽ bị tràn và sai.

Cách tính giới hạn của kiểu dữ liệu số nguyên như sau: từ số byte mà kiểu dữ liệu này cần để lưu trữ trong bộ nhớ, bạn có thể tính ra số bit mà nó dùng để biểu diễn số nguyên (1 byte bằng 8 bit). Từ số bit này, bạn có thể suy ra các giới hạn như sau:

  • Số nguyên có dấu: Kiểu dữ liệu có K bit sẽ lưu được giá trị từ 2^(K – 1) tới 2^(K-1) – 1. Ví dụ: kiểu int có 4 byte tương đương 32 bit sẽ lưu giá trị từ -2^31 tới 2^31 – 1.
  • Số nguyên không dấu: Kiểu dữ liệu có K bit sẽ lưu được giá trị từ 0 tới 2^K – 1. Ví dụ: unsigned int có 4 byte lưu giá trị từ 0 tới 2^32 – 1.

Với số nguyên, bạn chỉ cần nhớ hai kiểu intlong long. Không cần nhớ chính xác giá trị của hai kiểu dữ liệu này, chỉ cần hiểu tổng quan là được. Kiểu int lưu được từ khoảng -2 tỷ tới 2 tỷ và long long lưu được từ khoảng -9 tỷ tỷ tới 9 tỷ tỷ.

Kiểu Dữ Liệu Số Thực

Trong lập trình, có hai kiểu dữ liệu số thực bạn cần nhớ:

  • float: Số thực với độ chính xác đơn, lưu được 6 chữ số ở phần thập phân.
  • double: Số thực với độ chính xác kép, lưu được 15 chữ số ở phần thập phân.

Từ đó, ta có thể thấy kiểu double có thể lưu số thực với độ chính xác cao hơn so với kiểu float. Do đó, trong các bài toán tính toán số thực, nên ưu tiên sử dụng kiểu double.

Mặc dù kiểu dữ liệu số thực có thể lưu được giá trị của số nguyên, tuy nhiên, trong trường hợp bài toán yêu cầu sử dụng kiểu dữ liệu số nguyên, hãy sử dụng intlong long thay vì floatdouble. Điều này là do hai kiểu dữ liệu số thực có sai số và có thể dẫn đến kết quả sai trong quá trình tính toán.

Kiểu Dữ Liệu Ký Tự

Trong ngôn ngữ lập trình C, để lưu một ký tự, chúng ta sử dụng kiểu dữ liệu char. Chú ý rằng kiểu dữ liệu này chỉ lưu được duy nhất một ký tự như ‘@’, ‘2’, ‘b’… Nó không thể lưu được một chuỗi ký tự như “28tech.com.vn”. Việc lưu trữ chuỗi ký tự sẽ được tìm hiểu sau này.

Kiểu char có thể lưu được hầu hết các ký tự thường gặp như chữ cái (A, B, x, y, z…), chữ số (0, 1, 2…), ký tự đặc biệt (#, $, %, &…).

Với kiểu dữ liệu char, chúng ta sẽ có một bài hướng dẫn chi tiết hơn về cách sử dụng.

Kết Luận

Trong ngôn ngữ lập trình C, bạn chỉ cần nhớ 5 kiểu dữ liệu phổ biến nhất và cách đặc tả của chúng:

  • Số nguyên: int (%d) và long long (%lld).
  • Số thực: float (%f) và double (%lf).
  • Ký tự: char (%c).

Tìm hiểu thêm về Kiểu dữ liệu trong C tại Izumi.Edu.VN.

FEATURED TOPIC