Bước tới nội dung

Học C++/Kiểu dữ liệu

Tủ sách mở Wikibooks

Có 4 kiểu dữ liệu cơ sở:

  1. Kiểu số nguyên
  2. Kiểu số thực
  3. Kiểu luận lý (logic)
  4. Kiểu ký tự

Kiểu số nguyên

[sửa]
Kiểu Độ rộng bit Dãy giá trị
char 1 byte –128 tới 127
unsigned char 1 byte 0 tới 255
int 4 byte –231 tới 231 – 1
unsigned int 4 byte 0 tới 232 – 1
short int 2 byte –215 tới 215 – 1
unsigned short int 2 byte 0 tới 216 – 1
long int 4 byte –231 tới –231 – 1
unsigned long int 4 byte 0 tới 232 – 1

Kiểu số thực

[sửa]
Kiểu Độ rộng bit Dãy giá trị
float 4 byte 1.401298 x 10-45 tới 3.40282 x 1038
double 8 byte 4.94066 x 10-324 tới 1.79769 x 10308
long double 8 byte 4.94066 x 10-324 tới 1.79769 x 10308

Kiểu luận lý

[sửa]

Đây là kiểu nguyên đặc biệt, mỗi biểu thức luận lý khác 0 là đúng (true), bằng 0 là sai (false). Một biểu thức luận lý luôn trả về một trong hai kết quả là 0 (sai) hoặc 1 (đúng). Để lưu giá trị của một biểu thức luận lý, người ta có thể khai báo biến kiểu bool.

Các phép toán trong biểu thức luận lý:

  • Phép and (và, ký hiệu &&): A && B đúng khi cả A và B đều đúng.
  • Phép or (hoặc, ký hiệu ||): A || B sai khi cả A và B đều sai.
  • Phép not (phủ định, ký hiệu !): !A đúng khi A sai.

Các phép so sánh trong biểu thức luận lý:

  • Phép so sánh bằng ==
  • Phép so sánh khác !=
  • Phép so sánh lớn (>), bé (<), lớn hơn bằng (>=), bé hơn bằng (<=)

Kiểu ký tự

[sửa]

Ngôn ngữ C/C++ đều cung cấp 2 kiểu cho việc lưu trữ các ký tự:

  • Để lưu ký tự 1 byte (8 bit) dựa trên bảng mã ASCII, ta dùng biến kiểu char hoặc unsigned char
  • Để lưu ký tự UTF-16 (ký tự Unicode dạng 16 bit, được lưu dựa trên bảng mã quốc tế), ta dùng biến kiểu wchar_t, chiếm 2 byte bộ nhớ.

Tìm kích cỡ của các kiểu dữ liệu

[sửa]

Đoạn code sau 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:

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