Kiểu dữ liệu trong C/C++

Các kiểu dữ liệu trong C/C++ là gì? Dưới đây là mọi điều bạn cần biết về kiểu dữ liệu C++ và C.

Trong khi thao tác với bất kể ngôn từ lập trình nào, bạn cần sử dụng những kiểu biến phong phú để lưu giữ thông tin. Các biến, không gì khác ngoài những vị trí bộ nhớ được dành riêng để lưu giá trị. Nghĩa là, khi bạn tạo một biến, bạn dành riêng một số ít khoảng trống trong bộ nhớ cho biến đó .Bạn hoàn toàn có thể thích lưu thông tin của những kiểu dữ liệu ( Data Type ) phong phú 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, mạng lưới hệ thống sẽ cấp phép bộ nhớ và quyết định hành động những gì hoàn toàn 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++:

Bạn đang đọc: Kiểu dữ liệu 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 hoàn toà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 hoàn toàn có thể được lưu giữ với những 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 những biến hoàn toàn có thể khác với những gì hiển thị trên bảng, nhờ vào 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ỡ đúng chuẩn của những kiểu dữ liệu phong phú trên máy tính của bạn .

#include  
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 tác dụng sau ( hiệu quả hoàn toàn có thể phong phú 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à trọn vẹ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à hoàn toàn có thể được sử dụng như thể những 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 những 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 đơn cử .Trình chỉnh sửa những kiểu dữ liệu có sẵn trong C + + gồm có :

  • Signed – Đã ký
  • Unsigned – Chưa ký
  • Short – Ngắn
  • Long – Dài

Bảng bên dưới tóm tắt size đã chỉnh sửa và khoanh vùng phạm vi của những kiểu dữ liệu có sẵn khi được tích hợp với trình chỉnh sửa kiểu tương thích :

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.

Bài trước : Comment trong C / C + +

Bài tiếp : Kiểu biến trong C / C + +

Kiểu dữ liệu trong C/C++

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay