[Hướng dẫn C++] Bài 4: Các kiểu dữ liệu trong C/C++, và cách sử dụng

Hướng dẫn sử dụng getline và fget để nhập chuỗi trong c++

Dữ liệu, biến là các tham số, giá trị để lưu trữ thông tin, trong khi làm việc với bất kỳ ngôn ngữ lập trình nào, bạn cần sử dụng các kiểu biến đa dạng để lưu giữ thông tin. Các biến có chức năng như bộ nhớ dành riêng để lưu trữ dữ liệu, Khi bạn tạo ra một biến có nghĩa bạn tạo ra 1 bộ nhớ để lưu giá trị. Vậy các giá trị trong lập trình nói chung và lập trình C++ có các dạng gì? Bài viết này sẽ hướng dẫn rõ cho các bạn các giá trị, các biến trong C++.

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

Vì C++ là được phát triển dựa trên C, nên C++ và C có cùng các kiểu dữ liệu, các kiểu dữ liệu có sẵn trong C/C++ là những kiểu dữ liệu mà lập trình viên nào cũng cần phải biết.

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

Ngoài ra các dữ liệu cơ bản còn có thể được thêm , sửa đổ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 (kiểu dữ liệu ngắn)
  • long (kiểu dữ liệu dài)

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.

Chú ý: khi bạn lập trình và cài đặt các compiler 32 bit hoặc 64 bit. thì các biến sẽ thay đổi giá trị phụ thuộc vào compiler C++ của các bạn

Ví dụ: khi bạn sử dụng Compiler C++ 32 bit thì int mặc định sẽ là 32 byte, và ngược lại với 64 bit.

Toán tử SizeOf()

Bạn có thể sử dụng toán sử SizeOf để xác định chính xác là các biến của bạn đang sử dụng bao nhiêu byte


#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;

Khai báo typedef trong C/C++

Ngoài ra bạn có thể tạo ra 1 tên dữ liệu mới của bạn bằng cách khai báo typedef trong C/C++.

Ví dụ sau: chúng ta khai báo 1 loại dữ liệu mới

typedef float sothuc;

Thì thay vì sử dụng float, các bạn có thể sử dụng tiền số “sothuc”, chương trình sẽ tự hiểu đây là 1 giá trị float.

Kiểu liệt kê enum trong C/C++

Kiểu liệt kê enum cũng được dùng thường xuyên trong C/C++ dùng để đặt tên cho các trạng thái, giá trị. Mỗi Enumerator là một constant có kiểu là kiểu liệt kê

Ví dụ Để khai báo một Enumeration, bạn sử dụng từ khóa enum trong C/C++.

Enum laptrinh { web =0, ungdung, maytinh };

Và cách sử dụng Enumeration

laptrinh toithichlaptrinh;
toithichlaptrinh =  web

Chúng ta tạo 1 biến toithichlaptrinh có dạng là enum laptrinh, và sau đó chúng ta gán giá trị cho biến là toithichlaptrinh = web.

Kết luận:

Các kiểu dữ liệu trong lập trình C/C++ là một phần rất cơ bản mà mọi lập trình viên C/C++ điều phải biết. Và sử dụng chúng linh hoạt để chương trình chạy trơn chu và hiệu năng nhất
Để học về C++, các bạn có thể tham khảo serie hướng dẫn C++ từ cơ bản đến nâng cao tại Ghouse.