Kiểu dữ liệu trong C/C++
Long Long C++ là gì? Bài viết sẽ cho bạn biết về các kiểu dữ liệu trong C++.
C++ là một trong số những ngôn ngữ lập trình thông dụng nhất hiện nay. Khi sử dụng nó, nhất định bạn phải có kiến thức về các kiểu dữ liệu.
Bất cứ khi nào chúng ta bắt đầu học ngôn ngữ mới, kiểu dữ liệu là kiến thức cần biết để bắt đầu với phần mã hóa của ngôn ngữ đó. Kiểu dữ liệu có thể được định nghĩa là kiểu dữ liệu mà bất kỳ biến nào cũng có thể chứa, chẳng hạn như số nguyên, số thực, kiểu dữ liệu ký tự, v.v. Có một số kiểu dữ liệu trong mọi ngôn ngữ, vì vậy để sử dụng hiệu quả và chính xác các kiểu dữ liệu này, chúng ta sẽ tìm hiểu chi tiết về các kiểu dữ liệu.
Định nghĩa về Kiểu dữ liệu
Kiểu dữ liệu là dữ liệu có thể chứa biến. Ví dụ, một biến Boolean có thể có dữ liệu boolean và một biến số nguyên có thể chứa dữ liệu số nguyên.
Trong khi mã hóa, chúng ta cần sử dụng các biến khác nhau để lưu trữ thông tin khác nhau. Biến chỉ là các vị trí lưu trữ được dành riêng để lưu trữ các giá trị. Do đó, khi tạo biến, bạn sẽ dành một số không gian trong bộ nhớ. Bạn có thể muốn lưu trữ thông tin cho các kiểu dữ liệu khác nhau, chẳng hạn như số nguyên, số thực, chuỗi và giá trị Boolean. Bộ nhớ được phân bổ dựa trên kiểu dữ liệu của biến. Lượng bộ nhớ cần thiết phụ thuộc vào kiểu dữ liệu.
Bạn có thể thích lưu thông tin của các kiểu dữ liệu (Data Type) đa dạng như Character, Wide Character, integer, floating-point, double floating point, Boolean,... Dựa trên kiểu dữ liệu của một biến, hệ thống sẽ cấp phát bộ nhớ và quyết định những gì có thể được lưu giữ trong bộ nhớ dành riêng đó.
Kiểu dữ liệu nguyên thủy trong C/C++
Tên tiếng Anh là Primitive Type, còn có thể gọi là kiểu dữ liệu gốc, kiểu dữ liệu có sẵn trong C/C++. Bên cạnh các kiểu dữ liệu gốc này, C/C++ cũng cung cấp các kiểu dữ liệu user-defined. Bảng dưới đây liệt kê 7 kiểu dữ liệu cơ bản trong C/C++:
Kiểu dữ liệu | Từ khóa |
---|---|
Boolean | bool |
Ký tự | char |
Số nguyên | int |
Số thực | float |
Số thực dạng Double | double |
Kiểu không có giá trị | void |
Kiểu Wide character | wchar_t |
Một số kiểu cơ bản có thể được sửa đổi bởi sử dụng một hoặc nhiều modifier này:
- signed (kiểu có dấu)
- unsigned (kiểu không có dấu)
- short
- long
Bảng sau hiển thị kiểu biến, lượng bộ nhớ nó dùng để lưu giá trị trong bộ nhớ, và giá trị lớn nhất và nhỏ nhất có thể được lưu giữ với các kiểu biến đó:
Kiểu | Độ rộng bit | Dãy giá trị |
---|---|---|
char | 1 byte | -127 tới 127 hoặc 0 tới 255 |
unsigned char | 1 byte | 0 tới 255 |
signed char | 1 byte | -127 tới 127 |
int | 4 byte | -2147483648 tới 2147483647 |
unsigned int | 4 byte | 0 tới 4294967295 |
signed int | 4 byte | -2147483648 tới 2147483647 |
short int | 2 byte | -32768 tới 32767 |
unsigned short int | Range | 0 tới 65,535 |
signed short int | Range | -32768 tới 32767 |
long int | 4 byte | -2,147,483,647 tới 2,147,483,647 |
signed long int | 4 byte | Tương tự như long int |
unsigned long int | 4 byte | 0 tới 4,294,967,295 |
float | 4 byte | +/- 3.4e +/- 38 (~7 chữ số) |
double | 8 byte | +/- 1.7e +/- 308 (~15 chữ số) |
long double | 8 byte | +/- 1.7e +/- 308 (~15 chữ số) |
wchar_t | 2 hoặc 4 byte | 1 wide character |
Kích cỡ của các biến có thể khác với những gì hiển thị trên bảng, phụ thuộc vào compiler và máy tính bạn đang sử dụng.
Dưới đây là ví dụ sẽ đưa ra kích cỡ chính xác của các kiểu dữ liệu đa dạng trên máy tính của bạn.
#include <iostream>
using namespace std;
int main()
{
cout << "Kich co cua char la: " << sizeof(char) << endl;
cout << "Kich co cua int la: " << sizeof(int) << endl;
cout << "Kich co cua short int la: " << sizeof(short int) << endl;
cout << "Kich co cua long int la: " << sizeof(long int) << endl;
cout << "Kich co cua float la: " << sizeof(float) << endl;
cout << "Kich co cua double la: " << sizeof(double) << endl;
cout << "Kich co cua wchar_t la: " << sizeof(wchar_t) << endl;
return 0;
}
Ví dụ này sử dụng endl, mà chèn một ký tự newline (dòng mới) sau mỗi dòng, và toán tử << được sử dụng để truyền nhiều giá trị tới màn hình. Chúng tôi cũng sử dụng toán tử sizeof() để lấy kích cỡ của các kiểu dữ liệu đa dạng.
Khi code trên được biên dịch và thực thi, nó cho kết quả sau (kết quả có thể đa dạng tùy thuộc vào compiler và máy tính bạn đang sử dụng).
Kich co cua char la: 1
Kich co cua int la: 4
Kich co cua short int la: 2
Kich co cua long int la: 4
Kich co cua float la: 4
Kich co cua double la: 8
Kich co cua wchar_t la: 4
Khai báo typedef trong C/C++
Bạn có thể tạo một tên mới cho một kiểu dữ liệu đang tồn tại bởi sử dụng typedef trong C/C++. Cú pháp đơn giản sau để định nghĩa một kiểu dữ liệu mới bởi sử dụng typedef:
typedef kieu_du_lieu ten_moi;
Ví dụ sau nói cho compiler rằng sothuc là tên khác của float:
typedef float sothuc;
Bây giờ, khai báo sau là hoàn toàn hợp lệ và sẽ tạo một biến số thực gọi là vantoc:
sothuc vantoc;
Kiểu liệt kê enum trong C/C++
Kiểu liệt kê enum khai báo một tên kiểu tùy ý và một tập hợp của 0 hoặc nhiều Identifier (Định danh) mà có thể được sử dụng như là các giá trị của kiểu đó. Mỗi Enumerator là một constant có kiểu là kiểu liệt kê (enumeration).
Để tạo một Enumeration, bạn sử dụng từ khóa enum trong C/C++. Form chung của kiểu liệt kê enum là:
enum ten_cua_enum { danh sach cac ten } danh_sach_bien;
Tại đây, ten_cua_enum là tên kiểu liệt kê. Danh sách tên được phân biệt bởi dấu phảy.
Ví dụ, code sau định nghĩa một tên kiểu liệt kê hàng hóa gọi là sanpham và biến c là kiểu của sanpham. Cuối cùng, c được gán giá trị maytinh.
enum sanpham { laptop, maytinh, dienthoai } c;
c = maytinh;
Theo mặc định, trong danh sách các tên thì giá trị của tên đầu tiên là 0, tên thứ hai là 1 và tên thứ 3 là 2,... Nhưng bạn có thể cung cấp cho một tên một giá trị cụ thể bằng việc thêm một Initializer (giá trị khởi tạo). Ví dụ, trong enumeration sau, maytinh sẽ có giá trị là 50:
enum sanpham { laptop, maytinh=50, dienthoai };
Ở đây, dienthoai sẽ có giá trị là 51 bởi vì mỗi tên sẽ có giá trị lớn hơn của tên trước đó là 1.
Datatype Modifier
Đúng như tên gọi, datatype modifier được dùng với các kiểu dữ liệu có sẵn để chỉnh sửa độ dài của dữ liệu thuộc một kiểu cụ thể.
Trình chỉnh sửa các kiểu dữ liệu có sẵn trong C++ bao gồm:
- Signed - Đã ký
- Unsigned - Chưa ký
- Short - Ngắn
- Long - Dài
Bảng bên dưới tóm tắt kích thước đã chỉnh sửa và phạm vi của các kiểu dữ liệu có sẵn khi được kết hợp với trình chỉnh sửa kiểu phù hợp:
Data Type | Size (in bytes) | Range |
---|---|---|
short int | 2 | -32,768 tới 32,767 |
unsigned short int | 2 | 0 tới 65,535 |
unsigned int | 4 | 0 tới 4,294,967,295 |
int | 4 | -2,147,483,648 tới 2,147,483,647 |
long int | 4 | -2,147,483,648 tới 2,147,483,647 |
unsigned long int | 4 | 0 tới 4,294,967,295 |
long long int | 8 | -(2^63) tới (2^63)-1 |
unsigned long long int | 8 | 0 tới 18,446,744,073,709,551,615 |
signed char | 1 | -128 tới 127 |
unsigned char | 1 | 0 tới 255 |
float | 4 | -3.4×10^38 tới 3.4×10^38 |
double | 8 | -1.7×10^308 tới 1.7×10^308 |
long double | 12 | -1.1×10^4932 tới 1.1×10^4932 |
wchar_t | 2 hoặc 4 | 1 ký tự chiều rộng |
Lưu ý: Các giá trị trên có thể thay đổi theo trình biên dịch.
Tóm lại, khi bắt đầu code bằng ngôn ngữ lập trình bất kỳ, điều đầu tiên bạn cần hiểu các kiểu dữ liệu là gì. Một khi đã nắm được cách dùng các kiểu dữ liệu trong C++, bạn sẽ nhanh chóng biết được cách dùng chúng khi phát triển ứng dụng. Về cơ bản, bạn cần nhớ những điều sau về các kiểu dữ liệu trong C++:
- C++ có 3 kiểu dữ liệu: nguyên thủy, trừu tượng và dẫn xuất.
- Kiểu dữ liệu nguyên thủy bao gồm integer, floating-point, character, boolean, double floating-point, valueless hay void, và wide character.
- Các kiểu dữ liệu trừu tượng hoặc do người dùng xác định bao gồm class, enum, union, structure, typedef.
- Kiểu dữ liệu dẫn xuất bao gồm array, function, pointer, và reference.
- Những bộ chỉnh sửa dữ liệu khác là short, long, signed và unsigned mà bạn có thể áp dụng các kiểu dữ liệu như int, double, char…
Bài trước: Comment trong C/C++
Bài tiếp: Kiểu biến trong C/C++
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

- Nguyễn Trung KiênThích · Phản hồi · 0 · 14/11/22

Cũ vẫn chất
-
Hình nền trắng, ảnh nền trắng đẹp
2 ngày -
19/5 là ngày gì? Ngày 19 tháng 5 năm 1890 là ngày gì?
Hôm qua 6 -
Tại sao khởi động lại router có thể khắc phục được nhiều vấn đề?
Hôm qua -
Khối D01 thi môn nào, học ngành nào?
Hôm qua -
Cách tìm tài khoản liên kết với địa chỉ email
Hôm qua -
Cách kích hoạt Windows Subsystem for Linux trên Windows
Hôm qua -
Cách thức tỉnh trái ác quỷ Blox Fruit
2 ngày -
Outlook là gì? Cách sử dụng Outlook cho người mới
2 ngày -
Code Wuthering Waves mới nhất 18/05/2025 và hướng dẫn đổi code
2 ngày -
Tổng hợp 1001+ thuật ngữ trong Liên Quân Mobile
2 ngày 7