Các kiểu dữ liệu trong lập trình C/C++ (Data type)

Bài viết này sẽ giới thiệu về các kiểu dữ liệu trong lập trình C/C++. Hiểu rõ về các kiểu dữ liệu này sẽ giúp bạn xác định được giá trị mà một biến có thể nhận hay giá trị mà một hàm có thể trả về.

Kiểu dữ liệu / Data type là gì?

Trong lập trình C/C++, kiểu dữ liệu chính là phần xác định các giá trị mà một biến có thể nhận hay giá trị mà một hàm có thể trả về. Ngoài ra, kiểu dữ liệu của một biến còn xác định kích thước (số byte) của biến đó.

→ Lưu ý: Bài viết này sẽ chỉ trình bày về 4 kiểu dữ liệu chính trong lập trình C/C++: Kiểu dữ liệu cơ bản, kiểu dữ liệu enum, kiểu void và kiểu dữ liệu nâng cao.

Kiểu dữ liệu cơ bản

Kiểu dữ liệu cơ bản là kiểu dữ liệu số học, có thể là số nguyên (integer) hoặc số thực (float).

Kiểu số nguyên (integer)

Với kiểu dữ liệu số nguyên (integer), chúng ta có các loại sau:

  • Kiểu char: 1 byte, giá trị từ -128 đến 127 hoặc từ 0 đến 255
  • Kiểu unsigned char: 1 byte, giá trị từ 0 đến 255
  • Kiểu signed char: 1 byte, giá trị từ -128 đến 127
  • Kiểu int: 2 hoặc 4 bytes, giá trị từ -32,768 đến 32,767 hoặc từ -2,147,483,648 đến 2,147,483,647
  • Kiểu unsigned int: 2 hoặc 4 bytes, giá trị từ 0 đến 65,535 hoặc từ 0 đến 4,294,967,295
  • Kiểu short: 2 bytes, giá trị từ -32,768 đến 32,767
  • Kiểu unsigned short: 2 bytes, giá trị từ 0 đến 65,535
  • Kiểu long: 4 bytes, giá trị từ -2,147,483,648 đến 2,147,483,647
  • Kiểu unsigned long: 4 bytes, giá trị từ 0 đến 4,294,967,295

Cùng là dữ liệu kiểu số học, nhưng chúng ta lại có nhiều kiểu khác nhau. Việc này giúp tiết kiệm bộ nhớ và linh hoạt hơn trong việc lưu trữ dữ liệu. Ví dụ, khi lưu tuổi của một người, chúng ta chỉ cần sử dụng kiểu char hoặc unsigned char, giúp tiết kiệm bộ nhớ trong khi vẫn đảm bảo lưu trữ được tất cả các giá trị có thể xảy ra. Tuy nhiên, với trường hợp dữ liệu lớn hơn như số lượng người trong một quốc gia, chúng ta cần sử dụng kiểu int.

Kiểu số thực (float)

Tương tự với kiểu dữ liệu số thực (dấu phẩy động), chúng ta cũng có các loại sau:

  • Kiểu float: 4 byte, vùng giá trị từ 1.2E-38 đến 3.4E+38, độ chính xác 6 vị trí thập phân
  • Kiểu double: 8 byte, vùng giá trị từ 2.3E-308 đến 1.7E+308, độ chính xác 15 vị trí thập phân
  • Kiểu long double: 10 byte, vùng giá trị từ 3.4E-4932 đến 1.1E+4932, độ chính xác 19 vị trí thập phân

Dưới đây là một ví dụ về code lưu trữ và hiển thị các kiểu dữ liệu số nguyên và số thực:

#include 
using namespace std;

int main() {
    int age = 25;
    float height = 1.75;

    cout << "Tuoi: " << age << endl;
    cout << "Chieu cao: " << height << endl;

    return 0;
}

Kết quả:

Tuoi: 25
Chieu cao: 1.75

Các kiểu dữ liệu trong lập trình C/C++ (Data type)

Kiểu dữ liệu Enum

Kiểu dữ liệu Enum trong ngôn ngữ C hay còn gọi là kiểu dữ liệu cố định, kiểu liệt kê. Giá trị của một Enum chỉ có thể nhận giá trị là một số các số nguyên cho trước. Kiểu Enum này tương tự trong Java, Node.js hay Python.

Kiểu Void

Kiểu void dùng để xác định không có giá trị nào (không phải là null). Nó được sử dụng trong các trường hợp sau đây:

  • Kiểu trả về của một hàm: khi một hàm không trả về dữ liệu gì, thì hàm đó có kiểu void.
  • Hàm với tham số void (tức là hàm không có tham số đầu vào).

Ví dụ:

#include 
using namespace std;

void sayHello() {
    cout << "Hello!" << endl;
}

void printSum(int a, int b) {
    int sum = a + b;
    cout << "Sum: " << sum << endl;
}

int main() {
    sayHello();
    printSum(5, 3);

    return 0;
}

Kết quả:

Hello!
Sum: 8

Kiểu dữ liệu nâng cao

Các kiểu dữ liệu nâng cao trong lập trình C gồm:

  • Con trỏ (pointer): sử dụng để lưu trữ địa chỉ của một đối tượng.
  • Kiểu mảng (array): cho phép lưu trữ nhiều giá trị cùng kiểu trong một biến.
  • Kiểu cấu trúc (structure): cho phép tổ chức và lưu trữ các kiểu dữ liệu khác nhau trong một biến.
  • Kiểu union: cho phép sử dụng cùng một vùng nhớ để lưu trữ các kiểu dữ liệu khác nhau.
  • Kiểu hàm (function): cho phép lưu trữ và sử dụng các hàm như một biến.

Kiểu dữ liệu boolean

Kiểu dữ liệu boolean là một kiểu dữ liệu chỉ có thể nhận một trong hai giá trị như đúng/sai (true/false, yes/no, 1/0) để đại diện cho hai giá trị thật (truth value). Trong lập trình C, kiểu boolean được gọi là bool (trong Java gọi là boolean, trong Python gọi là bool… tùy theo ngôn ngữ).

Ban đầu, ngôn ngữ C không hỗ trợ kiểu bool, mà thay vào đó nó dùng số nguyên để biểu thị true/false (0 tức là false, khác 0 tức là true). Từ phiên bản C99 standard, ngôn ngữ C mới bắt đầu hỗ trợ kiểu bool.

Lưu ý

  • Trong lập trình C/C++, không có kiểu dữ liệu string (text) để hiển thị văn bản. Để hiển thị giá trị kiểu text/string, chúng ta sử dụng kiểu char. Thực chất, kiểu char vẫn là kiểu số, nhưng tùy theo giá trị, nó được hiểu thành các ký tự trong bảng mã ASCII. Ví dụ, số 32 tương ứng với dấu cách, 48 tương ứng với ký tự ‘0’, 65 tương ứng với ký tự ‘A’. Để hiển thị đoạn text ‘hello’, chúng ta cần mảng char tương ứng là [104, 101, 108, 108, 111].

  • Trong lập trình C, kiểu bool chính là kiểu integer (0 tức là false, khác 0 tức là true).

Bài viết gốc được đăng tải tại codecute.com.

FEATURED TOPIC