Tổng hợp các kiểu dữ liệu trong C++
Tổng hợp các kiểu dữ liệu quan trọng trong ngôn ngữ lập trình C++: Kiểu dữ liệu gốc, có nguồn gốc từ kiểu dữ liệu gốc và kiểu dữ liệu do người dùng xác định.
Trong bài viết này, Isinhvien sẽ cùng các bạn tìm hiểu các kiểu dữ liệu khác nhau trong ngôn ngữ C++ như kiểu dữ liệu int, float, double, char hoặc các kiểu dữ liệu tích hợp như union, enum, struct và các kiểu dữ liệu như hàm, con trỏ, mảng. Các kiểu dữ liệu nên được xác định trước khi thực thi vì nó thông báo cho trình biên dịch về loại dữ liệu cụ thể mà nó đang nắm giữ.
Một kiểu dữ liệu cho biết biến, kiểu phần tử đó là gì và chắc chắn sẽ xác định cấp phát bộ nhớ của biến đó. Chúng ta đã biết rằng mỗi kiểu dữ liệu có một phân bổ bộ nhớ khác nhau. Có ba kiểu dữ liệu C ++ khác nhau, cụ thể là Kiểu dữ liệu gốc, Có nguồn gốc từ kiểu dữ liệu gốc và cuối cùng là kiểu Người dùng xác định. Bây giờ hãy cùng đi tìm hiểu lần lượt các kiểu dữ liệu trên nhé!
Các kiểu dữ liệu gốc trong C++ (Primitive Data Types)
Đây là các kiểu dữ liệu được định nghĩa trước trong C++, còn được gọi là kiểu dữ liệu tích hợp. Chúng ta có thể trực tiếp sử dụng chúng để khai báo các biến mà không cần qua bất kì bước trung gian nào.
Bảng dưới đây là 7 kiểu dữ liệu cơ bản cần phải nhớ và rất thường xuyên sử dụng trong 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 |
Bảng sau hiển thị kiểu dữ liệu, 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 dữ liệu đó:
Kiểu | Độ rộng bit | Miền 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 |
Tuy nhiên, bảng trên chưa chắc chắn chính xác mà kích cỡ của các kiểu trên còn phụ thuộc vào compiler và máy tính bạn đang sử dụng. Vì vậy, để xác định chính xác các kiểu dữ liệu trên máy tính của bạn thì có thể làm theo cách sau:
#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; }
Khi chương trình 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). Dưới đây là kết quả biên dịch và thực thi trên máy tính mà Isinhvien đ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
Các kiểu dữ liệu có nguồn gốc từ dữ liệu gốc
Đây là kiểu dữ liệu có nguồn gốc từ các kiểu dữ liệu gốc mà ta vừa tìm hiểu ở trên. Bây giờ hãy bắt đầu đi vào tìm hiểu về các kiểu dữ liệu này nhé!
Mảng
Mảng (Array) là một loại cấu trúc dữ liệu trong ngôn ngữ lập trình C++, nó lưu trữ một tập hợp tuần tự các phần tử cùng kiểu với độ dài cố định. Mảng thường được sử dụng để lưu trữ tập hợp dữ liệu, nhưng nó cũng hữu dụng khi dùng để lưu trữ một tập hợp biến có cùng kiểu.
Dưới đây là chương trình và kết quả ví dụ về mảng:
Chương trình
#include <iostream> using namespace std; int main() { int a[5]={1,6,10,15,56}; cout<< " Kich co cua mang: " << sizeof(a)<<endl; for(int i=0;i<6;i++) { cout<< " Gia tri cua a["<<i<<"]:"<< a[i] <<endl; } }
Kết quả thực thi
Kich co cua mang: 20 Gia tri cua a[0]:1 Gia tri cua a[1]:6 Gia tri cua a[2]:10 Gia tri cua a[3]:15 Gia tri cua a[4]:56 Gia tri cua a[5]:0
Con trỏ
Con trỏ (Pointer) trong ngôn ngữ C/C++ rất dễ học và thú vị. Một vài tác vụ trong ngôn ngữ C /C++ được thực hiện dễ dàng hơn nhờ con trỏ, và những tác vụ khác trở nên linh hoạt hơn như cấp phát bộ nhớ, danh sách liên kết, hàng đợi,…
Dưới đây là một ví dụ về con trỏ:
Chương trình
#include<iostream> using namespace std; int main() { float a = 30; float *h; h= &a; cout << " Gia tri cua con tro h: "<< h << endl; cout << " Gia tri cua bien a: "<< a << endl; cout << " Gia tri cua h: "<< *h ; }
Kết quả
Gia tri cua con tro h: 0x6ffe04 Gia tri cua bien a: 30 Gia tri cua h: 30
Các kiểu dữ liệu do người dùng xác định
Đây là các kiểu dữ liệu do người dùng xác định tuỳ vào mục đích sử dụng khác nhau. Cùng Isinhvien đi vào tìm hiểu chi tiết hơn về các kiểu dữ liệu nãy nhé!
Kiểu cấu trúc (Structures)
Đây là kiểu dữ liệu lưu trữ sự kết hợp của các kiểu dữ liệu giống nhau hoặc khác nhau dưới các vị trí bộ nhớ liên tục. Như chúng ta đã thấy, trong mảng, chúng ta chỉ có thể lưu trữ các mục có kiểu dữ liệu giống nhau, nhưng kiểu cấu trúc có thể lưu trữ các kiểu dữ liệu khác nhau. Hãy xem một ví dụ nhỏ dưới đây để hiểu hơn nhé!
Chương trình
#include<iostream> using namespace std; struct Hsinh { int cnang = 58; string ten = "Nam"; float ccao = 1.65; } ; int main() { struct Hsinh f; cout<< " Ten hoc sinh: "<< f.ten <<endl; cout<< " Chieu cao: "<< f.ccao << endl; cout<< " Can nang: "<< f.cnang; }
Kết quả
Ten hoc sinh: Nam Chieu cao: 1.65 Can nang: 58
Lớp (Class)
Đây là một định nghĩa trong lập trình hướng đối tượng, nó bao gồm các hàm, biến và được truy cập bằng cách tạo các đối tượng. Sau đây là một ví dụ về lớp để các bạn tham khảo:
Chương trình
#include <iostream> using namespace std; class First { public: string name; void show() { cout << "Name is: " << name; } }; int main() { First f; f.name = "Nam"; f.show(); return 0; }
Kết quả
Name is: My Name
Typedef
Kiểu dữ liệu này chỉ dùng để đặt tên mới hoặc tên khác cho các kiểu dữ liệu. Xem ví dụ nhỏ sau để hiểu rõ hơn về Typedef.
Chương trình
#include <iostream> using namespace std; int main() { typedef unsigned char THISONE; typedef unsigned int OTHERONE; THISONE b1; OTHERONE b2; b1 = 'R'; b2 = 10; cout << " Check this out: " << b1<<endl; cout << " Check other out: " << b2; return 0; }
Kết quả
Check this out: R Check other out: 10
Enumeration
Đây là kiểu dữ liệu thường được sử dụng khi chúng ta đã biết một bộ giá trị cho một biến cụ thể và chọn một giá trị duy nhất từ chúng. Thường được gọi là enum. Xem ví dụ sau đây:
Chương trình
#include <iostream> using namespace std; enum color {Yellow, Red, Green, Blue}col; int main() { col = Green; cout<<" The color chosen is in the place: "<<col; return 0; }
Kết quả
The color chosen is in the place: 2
Trên đây là tất tần tật các kiểu dữ liệu quan trọng rất thường xuyên sử dụng trong ngôn ngữ lập trinh C++. Nếu các bạn thấy bài viết trên của Isinhvien hay và bổ ích, đừng quên để lại một like, một comment và chia sẻ với bạn bè để giúp Isinhvien ngày càng phát triển hơn nhé! Chúc các bạn sức khoẻ và gặt hái nhiều thành công trong cuộc sống