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), ... .
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ả:
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ả:
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ả:
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ả:
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é !!!