LATEST

Các kiểu dữ liệu trong C / C++

Trong bài viết này, codehow sẽ giới thiệu đến các bạn các kiểu dữ liệu trong C / C++. Đây là kiến thức rất quan trọng bởi vì các bạn muốn sử dụng kiểu dữ liệu nào thì cần biết được giới hạn của kiểu dữ liệu đó.

Mình sẽ đưa ra các loại dữ liệu có trong C / C++ cùng với đó là giá trị giới hạn của từng loại dữ liệu. Điều này giúp các bạn sử dụng không gian bộ nhớ một cách tối ưu và không bị dư thừa.

Các kiểu dữ liệu trong C / C++

Kiểu dữ liệu chỉ định kiểu dữ liệu của một biến có thể lưu trữ, ví dụ như kiểu số nguyên (interger), số thực (float), ... .

bai7 01 png

Có bốn kiểu dữ liệu lớn trong C / C++ là Basic, Derived, Enumeration, Void. Cụ thể như sau:

Types Data types
Basic Data Type int, char, float, double
Derived Data Type array, pointer, structure, union
Enumeration Data Type enum
Void Data Type void

Giới hạn giá trị của các kiểu dữ liệu trong C / C++

Để việc sử dụng dữ liệu không bị dư thừa, chúng ta cần biết được giới hạn của từng kiểu dữ liệu. Điều này giúp chúng ta lựa chọn kiểu dữ liệu phù hợp để lưu trữ.

Ví dụ: chúng ta muốn lưu trữ số nguyên dương bắt đầu từ 0 thì nên chọn kiểu unsigned short int.

Dưới đây là bảng giới hạn giá trị của các kiểu dữ liệu trong C / C++, các bạn có thể xem qua nhé.

Data Types Memory Size Range
char 1 byte -128 to 127
signed char 1 byte -128 to 127
unsigned 1 byte 0 to 255
short 2 byte -32,768 to 32,767
signed short 2 byte -32,768 to 32,767
unsigned short 2 byte 0 to 65,353
int 2 byte −32,768 to 32,767
signed int 2 byte −32,768 to 32,767
unsigned int 2 byte 0 to 65,353
short int 2 byte −32,768 to 32,767
signed short int 2 byte −32,768 to 32,767
unsigned short int 2 byte 0 to 65,353
long int 4 byte -2,147,483,648 to 2,147,483,647
signed long int 4 byte -2,147,483,648 to 2,147,483,647
unsigned long int 4 byte 0 to 4,294,967,295
float 4 byte
double 8 byte
long double 10 byte

Trong các kiểu dữ liệu, khi bạn thêm từ khóa signed để định nghĩa miền giá trị từ âm tới dương. Thêm từ khóa unsigned để định nghĩa giá trị dương, bắt đầu từ 0 đến nhân đôi miền giá trị.

Ví dụ:

  • Kiểu int có miền giá trị từ -32,768 đến 32767.
  • Kiểu signed int có miền giá trị từ -32,768 đến 32,767.
  • Kiểu unsigned có miền giá trị từ 0 đến 65,353.

Định nghĩa kiểu dữ liệu bằng TYPEDEF trong C / C++

Từ khóa TYPEDEF được sử dụng để đặt lại tên mới cho một kiểu dữ liệu.

Ví dụ: Chúng ta muốn đặt tên cho kiểu int thành kieu_So_Nguyen.

typedef int kieu_So_Nguyen;

Dòng lệnh trên sẽ tạo ra một kiểu dữ liệu tên là kieu_So_Nguyen và nó là bản sao của kiểu int. Lúc này chúng ta có thể sử dụng nó như bình thường.

#include <iostream.h>
using namespace std;
 
int main ()
{   
    //sử dụng typedef để đặt lại tên cho kiểu int
    typedef int kieu_So_Nguyen;
    //sử dụng tên dữ liệu mới để khai báo
    kieu_So_Nguyen namsinh = 1990;
    cout << "Nam sinh cua toi la:" << namsinh;

    cout<<"\n-------------------------\n";
    cout<<"\nChuong trinh nay duoc dang tai Codehow.net\n";
    return 0;
}

Kết quả:

bai7 02 png

Xem kích thước của các kiểu dữ liệu trong C / C++

Để có thể xem kích thước của các kiểu dữ liệu trong C / C++, ta sử dụng hàm sizeof().

Ví dụ:

#include <iostream>
using namespace std;
  
int main()
{
   cout << "char la: " << sizeof(char) << endl;
   cout << "int la: " << sizeof(int) << endl;
   cout << "short int la: " << sizeof(short int) << endl;
   cout << "long int la: " << sizeof(long int) << endl;
   cout << "float la: " << sizeof(float) << endl;
   cout << "double la: " << sizeof(double) << endl;
    
   cout<<"\n-------------------------\n";
   cout<<"\nChuong trinh nay duoc dang tai Codehow.net\n";
   return 0;
}

Kết quả:

bai7 03 png

Ví dụ sử dụng các kiểu dữ liệu trong C / C++

Trong phần này mình sẽ đưa ra hai ví dụ đơn giản, sử dụng các kiểu dữ liệu với hai ngôn ngữ khác nhau là C và C ++.

Ví dụ 1: Yêu cầu người dùng nhập vào một ký tự, một số nguyên, một số thực rồi hiển thị ra màn hình sử dụng ngôn ngữ C.

//khai báo thư viện stdio.h
#include <stdio.h>
int main(void) {
  int a;
  char s;
  float b;

  printf("Nhap vao mot ky tu: ");
  scanf("%s", &s);
  printf("Nhap vao mot so nguyen: ");
  scanf("%d", &a);
  printf("Nhap vao mot so thuc: ");
  scanf("%f", &b);

  printf("Ky tu vua nhap la: %s\n", &s);
  printf("So nguyen vua nhap la: %d\n", a);
  printf("So thuc vua nhap la: %0.1f\n", b);
  printf("\n-------------------------\n");
  printf("\nChuong trinh nay duoc dang tai Codehow.net\n");
  return 0;
}

Kết quả:

bai7 05 png

Ví dụ 2: Yêu cầu người dùng nhập vào một chuỗi sử dụng ngôn ngữ C++.

//khai báo thư viện iostream
#include <iostream>
//sử dụng namespace std
using namespace std;
int main() {
  string s;
  cout<<"Nhap vao chuoi s: ";
  cin>>s;
  cout<<"Chuoi s ban vua nhap la: "<<s<< endl;
  
  cout<<"\n-------------------------\n";
  cout<<"\nChuong trinh nay duoc dang tai Codehow.net\n";
}

Kết quả:

bai7 06 png

Lời kết

Như vậy là chúng ta đã cùng nhau tìm hiểu về các kiểu dữ liệu trong C / C++. Đây là các kiến thức rất quan trọng vì vậy các bạn cần nắm vững nó. Ở bài tiếp theo mình sẽ giới thiệu đến các bạn các toán tử trong C / C++, hãy chú ý theo dõi nhé !!!

Cùng chuyên mục:

Xóa node khỏi cây nhị phân tìm kiếm

Xóa node khỏi cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cách gộp hai danh sách liên kết đôi

Cách gộp hai danh sách liên kết đôi

Tìm kiếm phần tử trong DSLK đôi

Tìm kiếm phần tử trong DSLK đôi

Xóa node trong DSLK đôi

Xóa node trong DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Duyệt danh sách liên kết đôi

Duyệt danh sách liên kết đôi

Tạo node mới trong DSLK đôi

Tạo node mới trong DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

Quản lý sinh viên bằng DSLK đơn

Quản lý sinh viên bằng DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Tạo node mới trong DSLK đơn

Tạo node mới trong DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Cấu trúc dữ liệu của DSLK đơn