icantech
Lập trình C++
1999
15/11/2023

Các kiểu dữ liệu trong C++ mà lập trình viên nhất định không thể không biết

Trong bài viết dưới đây, hãy cùng ICANTECH tìm hiểu về khái niệm, kiểu dữ liệu nói chung và kiểu dữ liệu trong C++ nói riêng.

1. Tổng quan về kiểu dữ liệu trong C++

1.1. Khái niệm về kiểu dữ liệu 

Kiểu dữ liệu (data type) là cách để phân loại và mô tả cách dữ liệu được lưu trữ và xử lý trong ngôn ngữ lập trình. Nó giúp trình biên dịch hoặc trình thông dịch hiểu và quản lý cách lập trình viên muốn sử dụng dữ liệu.

Thường khi nói về kiểu dữ liệu, chúng ta thường liên tưởng đến loại dữ liệu của biến hoặc kết quả của một phép tính, một hàm hoặc một đoạn mã. Mỗi kiểu dữ liệu có các phép toán và thao tác xử lý riêng, do đó, khi thực hiện tính toán với các giá trị, chúng ta phải biết kiểu dữ liệu của chúng.

Ví dụ: Nếu một biến chứa giá trị 5 được nhập từ bàn phím thông qua lệnh input, không thể thực hiện các phép toán số học trực tiếp trên nó. Lý do là kiểu dữ liệu của biến đó là kiểu chuỗi (string), không hỗ trợ phép tính số học như các giá trị số.

1.2. Một số kiểu dữ liệu trong C++

Dưới đây là một số kiểu dữ liệu phổ biến trong C++:

kieu-du-lieu-trong-C++

 Tiếp theo chúng ta sẽ tìm hiểu về kích thước bộ nhớ của các kiểu dữ liệu:

kieu-du-lieu-trong-C++

2. Tìm hiểu về các kiểu dữ liệu phổ biến trong C++

Cùng ICANTECH tìm hiểu chi tiết về từng kiểu dữ liệu để xem cách chúng hoạt động và thao tác cơ bản với các kiểu dữ liệu trong C++ nhé!

Có nhiều kiểu dữ liệu số nguyên trong C++ và các ngôn ngữ lập trình khác vì mục tiêu là tối ưu hóa sử dụng bộ nhớ và tài nguyên máy tính dựa trên yêu cầu cụ thể của ứng dụng và hệ thống. Một số kiểu dữ liệu số nguyên được thiết kế để chứa các giá trị nguyên cơ bản với mức tiêu thụ bộ nhớ tối thiểu, trong khi các kiểu khác được thiết kế để chứa các giá trị lớn hơn hoặc cung cấp độ chính xác cao hơn.

Dưới đây là một số lý do tại sao có các kiểu dữ liệu số nguyên khác nhau:

  • Phạm vi giá trị: Mỗi kiểu dữ liệu có phạm vi giá trị khác nhau. Sử dụng kiểu dữ liệu thích hợp giúp bạn đảm bảo rằng bạn không vượt quá phạm vi và tránh sai lệch.
  • Tối ưu hoá bộ nhớ: Sử dụng kiểu dữ liệu phù hợp với phạm vi giá trị sẽ tiết kiệm bộ nhớ. Ví dụ, không cần sử dụng kiểu long long cho số nguyên nhỏ nếu kiểu int đủ.
  • Hiệu năng: Sử dụng kiểu dữ liệu thích hợp có thể cải thiện hiệu năng. Ví dụ, việc sử dụng int thay vì long long có thể làm cho các phép tính số học nhanh hơn.
  • Tính chính xác: Đối với các tình huống yêu cầu tính chính xác cao, như tính toán khoa học hoặc tài chính, các kiểu dữ liệu số nguyên như long double có độ chính xác cao hơn.
  • Kích thước dữ liệu: Kiểu dữ liệu ảnh hưởng đến kích thước dữ liệu và dung lượng lưu trữ. Việc lựa chọn kiểu dữ liệu có ảnh hưởng đến việc quản lý bộ nhớ.

2.1. Kiểu dữ liệu số nguyên 

Các kiểu dữ liệu số thực phổ biến có thể kể đến: kiểu dữ liệu int, kiểu dữ liệu short, kiểu dữ liệu long.

kieu-du-lieu-trong-C++

#include <iostream>

int main() {

    int a = 42;       // Kiểu int

    short b = 12345;  // Kiểu short

    long c = 1234567890;  // Kiểu long

    long long d = 1234567890123456789;  // Kiểu long long

    std::cout << "Kiểu int: " << a << std::endl;

    std::cout << "Kiểu short: " << b << std::endl;

    std::cout << "Kiểu long: " << c << std::endl;

    std::cout << "Kiểu long long: " << d << std::endl;

    return 0;

}

Kết quả: 

Kiểu int: 42

Kiểu short: 12345

Kiểu long: 1234567890

Kiểu long long: 1234567890123456789

2.2. Kiểu số thực 

Các kiểu dữ liệu số thực phổ biến có thể kể đến: kiểu dữ liệu float, kiểu dữ liệu double, kiểu dữ liệu long double.

kieu-du-lieu-trong-C++

Ví dụ:

score = 8.0

distance = 12.3

Biến score và distance ở đây chính là kiểu dữ liệu float.

Các biến dữ liệu float thường được sử dụng để biểu thị cho các giá trị như điểm số, khoảng cách, nhiệt độ…. và thường kết hợp với các phép toán trong C++ để tính toán các giá trị, biểu thị các công thức phức tạp…

Ví dụ:

#include <iostream>

#include <iomanip>

 

int main() {

    float a = 3.14159265;       // Kiểu float

    double b = 3.14159265359;   // Kiểu double

    long double c = 3.141592653589793238; // Kiểu long double

    std::cout << std::fixed << std::setprecision(10);

    std::cout << "Kiểu float: " << a << std::endl;

    std::cout << "Kiểu double: " << b << std::endl;

    std::cout << "Kiểu long double: " << c << std::endl;

    return 0;

}

Kết quả:

Kiểu float: 3.1415927410

Kiểu double: 3.1415926536

Kiểu long double: 3.1415926535897931

2.3. Kiểu dữ liệu enum

Kiểu dữ liệu enum trong C++ (viết tắt của "enumeration") được sử dụng để định nghĩa một tập hợp các giá trị hằng số rời rạc, đặt tên để dễ dàng sử dụng và hiểu. enum giúp làm cho mã nguồn dễ đọc hơn, dễ bảo trì và giảm lỗi khi sử dụng các giá trị hằng số. Dưới đây là cách sử dụng enum trong C++:

Cú pháp:

enum enum_name {

    enumerator1,

    enumerator2,

    // ...

};

  • enum_name là tên kiểu dữ liệu enum bạn muốn định nghĩa.
  • enumerator1, enumerator2, v.v., là các giá trị hằng số mà bạn muốn đặt tên.

Ví dụ: 

#include <iostream>

 

enum Day {

    Monday,    // 0

    Tuesday,   // 1

    Wednesday, // 2

    Thursday,  // 3

    Friday,    // 4

    Saturday,  // 5

    Sunday     // 6

};

 

int main() {

    Day today = Wednesday;

    if (today == Wednesday) {

        std::cout << "Today is Wednesday!" << std::endl;

    }

    return 0;

}

Trong ví dụ này, chúng ta đã định nghĩa một kiểu dữ liệu enum có tên Day với các giá trị hằng số là các ngày trong tuần. Khi chúng ta gán Wednesday cho biến today, ta có thể so sánh biến này với các giá trị enum để kiểm tra xem hôm nay có phải là ngày "Wednesday" không.

Một vài điểm lưu ý:

  • Giá trị của các enumerator bắt đầu từ 0 và tăng lên một đơn vị cho mỗi enumerator tiếp theo, nhưng bạn có thể gán giá trị khởi đầu khác bằng cách gán số nguyên cho chúng.
  • Mặc định, kiểu dữ liệu enum trong C++ sử dụng kiểu số nguyên làm kiểu dữ liệu lưu trữ, vì vậy các enumerator có thể được sử dụng trong các biểu thức số học.

2.4. Kiểu dữ liệu string trong C++ 

Kiểu dữ liệu string trong C++ hay còn được biết đến là kiểu dữ liệu chuỗi (string) được định nghĩa thông qua thư viện chuỗi chuẩn (STL - Standard Template Library) và được sử dụng thông qua lớp std::string. 

Để khai báo một biến kiểu chuỗi với từ khóa std::string, bạn thực hiện như sau:

#include <iostream>

#include <string>

int main() {

    std::string myString = "Hello, World!";

    std::cout << myString << std::endl;

    return 0;

}

2.5. Kiểu dữ  liệu boolean

Kiểu dữ liệu boolean trong C++ được đại diện bằng hai giá trị chấp nhận được: true (đúng) và false (sai). Kiểu dữ liệu boolean được sử dụng để biểu thị các giá trị logic, trong đó true thường tương ứng với "đúng" và false tương ứng với "sai". Kiểu boolean rất hữu ích trong các biểu thức điều kiện và kiểm tra logic trong lập trình.

Dưới đây là cách bạn có thể khai báo và sử dụng kiểu dữ liệu boolean trong C++:

#include <iostream>

 

int main() {

    bool isTrue = true;  // Khai báo biến boolean với giá trị đúng

    bool isFalse = false; // Khai báo biến boolean với giá trị sai

    if (isTrue) {

        std::cout << "isTrue là đúng." << std::endl;

    } else {

        std::cout << "isTrue là sai." << std::endl;

    }

    if (isFalse) {

        std::cout << "isFalse là đúng." << std::endl;

    } else {

        std::cout << "isFalse là sai." << std::endl;

    }

    return 0;

}

Kết quả: 

isTrue là đúng.

isFalse là sai.

3. Lời Kết

Qua bài viết trên, ICANTECH đã cùng bạn tìm hiểu các khái niệm, các thao tác cơ bản và các kiểu dữ liệu trong C++. Việc kiểm soát kiểu dữ liệu của các giá trị, biến số trong chương trình là vô cùng quan trọng. 

Bởi vậy, bạn hãy nắm chắc và ứng dụng các kiến thức cơ bản này để tối ưu các chương trình trong lập trình C++ nhé. Chúc các bạn thành công!

Nếu bạn đang quan đến học lập trình online thì hãy tham khảo ngay các khóa học lập trình tại ICANTECH nhé!

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình C++

Bài tương tự