Kiểu int là gì

Trong bài viết này chúng ta sẽ tìm hiểu các kiểu dữ liệu trong C như: Kiểu số thực [float], số nguyên [int], ký tự [char], ... và nhiều kiểu dữ liệu quan trọng khác.

C là ngôn ngữ rất khó tính, bạn không thể gán dữ liệu kiểu float cho biến được khai báo kiểu int. Vì vậy khi tạo một biến bạn cần phải xác định rõ là dữ liệu cần lưu là gì để khai báo cho phù hợp. Và sau đây là danh sách data type trong C thường được sử dụng nhất.

1. Bảng các kiểu dữ liệu trong C

Trước tiên hãy xem bảng tóm tắt các kiểu dữ liệu cơ bản trong C đã nhé, và chúng ta sẽ lần lượt tìm hiểu từng loại ở các phần tiếp theo.                                 Type Size [bytes] Format Specifier int 2 -> 4 %d, %i char 1 %c float 4 %f double 8 %lf short int 2 %hd unsigned int 2 -> 4 %u long int 4 -> 8 %ld, %li long long int 8 %lld, %lli unsigned long int 4 %lu unsigned long long int 8 %llu signed char 1 %c unsigned char 1 %c long double 10 -> 16 %Lf

2. Chi tiết kích thước các kiểu dữ liệu trong C

Kiểu int

Int là chữ viết tắt của Integer, đây là kiểu số nguyên âm hoặc nguyên dương và không có giá trị thập phân.

Các kiểu dữ liệu trong C là gì?

Kiểu dữ liệu [data type] có thể hiểu đơn giản là những kiểu dữ liệu được lưu trữ sẵn trong chương trình C. Chúng thường được sử dụng trong khi xác định một biến hoặc các hàm trong C. Điều quan trọng là trình biên dịch phải hiểu loại dữ liệu được xác định trước mà nó sẽ gặp trong chương trình. Nói chung, kiểu dữ liệu C là một thuộc tính cho máy tính biết cách diễn giải giá trị.

ĐĂNG KÝ NGAY

Ví dụ về data type in C

Hãy xem xét một ví dụ về kiểu dữ liệu cơ bản trong C tại một công ty. Nơi đây sẽ lưu trữ nhiều dữ liệu khác nhau của nhân viên của họ như Tên, ID nhân viên, Tuổi, Mức lương, Địa chỉ, Số điện thoại, v.v.

Những dữ liệu này là các giá trị chứa bảng chữ cái, số…., vì vậy, để giúp việc xử lý những dữ liệu khổng lồ này trở nên dễ hiểu, thông tin đã được phân loại thành các loại khác nhau như:

Để có thể hiểu được ví dụ này thì hãy cùng chúng tôi tìm hiểu các kiểu dữ liệu trong C ngay sau đây.

Kích thước các kiểu dữ liệu trong C [Basic Types in C]

Các kiểu dữ liệu cơ bản là dựa trên số nguyên và dựa trên thập phân. Ngôn ngữ C hỗ trợ cả ký tự có dấu và không dấu. Kích thước bộ nhớ của các kiểu dữ liệu cơ bản có thể thay đổi theo hệ điều hành 32 hoặc 64-bit.

Có 4 kiểu dữ liệu cơ bản ở trong C là Int, Float, Double, Char. Kích thước lưu trữ của các kiểu dữ liệu này thường có thể thay đổi tùy thuộc vào hệ điều hành của chương trình [là 32-bit hoặc 64-bit]. Dưới đây là các kiểu dữ liệu thường được sử dụng trong lập trình C với kích thước lưu trữ và phạm vi giá trị của chúng, theo kiến ​​trúc 32-bit.

Kiểu Kích thước lưu trữ Vùng giá trị
Int [or signed int] 2 byte -32,768 đến 32,767
unsigned int 2 byte 0 đến 65,535
Short int[or signed short int] 2 byte -32,768 đến 32,767
Long[or signed short int] 4 byte -2.147.483.648 đến 2.147.483.647
unsigned long 4 byte 0 đến 4,294,967,295
float 4 byte 1,2E-38 đến 3,4E + 38 [6 chữ số thập phân]
double 8 byte 2.3E-308 đến 1.7E + 308 [15 chữ số thập phân]
Long double 10 byte 3,4E-4932 đến 1,1E + 4932 [19 chữ số thập phân]
char[or signed char] 1 byte -128 đến 127
unsigned char 1 byte 0 đến 255

Các kiểu dữ liệu trong C mà bạn cần biết

Về cơ bản, trong ngôn ngữ C, sẽ tồn tại bốn kiểu dữ liệu khác nhau có thể được sử dụng để phân biệt và lưu trữ nhiều kiểu dữ liệu khác nhau, bao gồm:

Kiểu dữ liệu cơ bản – Basic Type

Kiểu dữ liệu số nguyên – Int

Một biến kiểu số nguyên có thể lưu trữ các giá trị 0, dương và âm mà không có bất kỳ số thập phân nào. Kiểu dữ liệu trong C số nguyên được hiển thị bằng từ khóa ‘int’ và nó có thể có dấu hoặc không dấu. Theo mặc định, giá trị được gán cho một biến số nguyên được coi là dương nếu nó không có dấu.

Kiểu dữ liệu số nguyên được chia thành các kiểu dữ liệu short, int và long. Kiểu dữ liệu ngắn [short] chiếm 2 byte không gian lưu trữ. Int thường là chiếm 2 hoặc 4 byte, và long chiếm 8 byte trong hệ điều hành 64 bit và 4 byte trong hệ điều hành 32 bit.

Vì vậy, nếu bạn cố gắng gán giá trị thập phân cho biến số nguyên, giá trị sau số thập phân sẽ bị cắt bớt và chỉ toàn bộ số được gán cho biến. Đây là một ví dụ sẽ giúp bạn hiểu thêm về khái niệm này:

Ví dụ về kiểu dữ liệu số nguyên bạn có thể tham khảo

Trong khi thực hiện một phép toán học, nếu kết quả trả về là giá trị thập phân, thì biến sẽ chỉ chấp nhận số nguyên và loại bỏ các số sau dấu thập phân. Đối với int ngắn, giá trị không chính xác sẽ được hiển thị nếu số lớn hơn 10000.

Float data type

Kiểu dữ liệu dấu phẩy động cho phép người dùng lưu trữ các giá trị thập phân trong một biến. Nó có hai loại: Float và Double

Biến float lưu trữ các giá trị thập phân với tối đa 6 chữ số sau vị trí thập phân. Kích thước lưu trữ của biến float là 4 byte, nhưng kích thước có thể khác nhau đối với các bộ xử lý khác nhau, giống như kiểu dữ liệu ‘int’. Ví dụ:

#include 

int main [] { 

float sum = 9664.35; 

float num = 67; 

float trung bình = [sum / num]; 

printf [“Trung bình là% f \ n”, trung bình]; 

printf [“Giá trị của num là% f \ n”, num]; 

printf [“Giá trị của num được trình bày dưới dạng số nguyên% d \ n”, num];

Kết quả sẽ cho ra giá trị trung bình là 144,244019; Giá trị của num là 67,000000; Giá trị của num được trình bày dưới dạng số nguyên 0.  

Nếu bạn cố gắng in các giá trị float với ‘% d’, thì kết quả đầu ra sẽ không phải là 67. Thay vào đó, bạn sẽ thấy một giá trị rác trên màn hình đầu ra. Do đó, đối với kiểu dữ liệu trong C, các giá trị float được hiển thị bằng mã định dạng ‘% f’. Một biến chứa giá trị số nguyên cũng sẽ được in theo kiểu động với các số 0 dư thừa. Nếu bạn gán một giá trị nguyên cho một biến float, kết quả sẽ luôn là một giá trị float với các số 0 sau vị trí thập phân. 

Kiểu dữ liệu double tương tự như float, nhưng ở đây, bạn có thể có tối đa 10 chữ số sau vị trí thập phân. Nó được đại diện bởi từ khóa ‘double’ và chủ yếu được sử dụng trong các chương trình khoa học đòi hỏi độ chính xác cao.

Char – Ký tự

Char được sử dụng để lưu trữ các giá trị ký tự đơn, bao gồm cả giá trị số. Nếu bạn tạo một mảng kiểu dữ liệu ký tự, nó sẽ trở thành một chuỗi có thể lưu trữ các giá trị như tên, chủ đề, v.v.

Hiểu được các kiểu dữ liệu trong C không phải là điều đơn giản

Các kiểu dữ liệu có nguồn gốc

Các kiểu dữ liệu nguyên thủy [primitive data type] hoặc cơ bản được sử dụng để lưu trữ các giá trị đơn lẻ của các dạng khác nhau, nhưng nếu bạn cần lưu trữ thêm các giá trị của cùng một kiểu dữ liệu thì sao? Ở đây, các kiểu dữ liệu dẫn xuất cho phép bạn kết hợp các kiểu dữ liệu cơ bản và lưu trữ nhiều giá trị trong một biến duy nhất.

Các kiểu dữ liệu trong C có nguồn gốc do chính người dùng xác định, có nghĩa là bạn có thể tổng hợp nhiều phần tử của các kiểu dữ liệu tương tự theo yêu cầu. Có bốn loại kiểu dữ liệu dẫn xuất: Hàm [function], con trỏ [pointer], mảng [array], Union.

Mảng [array] là một tập hợp các phần tử kiểu dữ liệu tương tự được lưu trữ trong một vị trí bộ nhớ liền kề. Ví dụ: bạn có thể lưu trữ các giá trị float như dấu của sinh viên, giá trị số nguyên như số cuộn, v.v.

Con trỏ [pointer] là một biến dùng để lưu địa chỉ của một biến khác. Để lưu trữ địa chỉ của một biến, biến con trỏ phải có cùng kiểu dữ liệu. Point cho phép người dùng thực hiện cấp phát bộ nhớ động bằng ngôn ngữ C và cũng truyền các biến bằng cách tham chiếu, có nghĩa là người dùng có thể chuyển con trỏ có địa chỉ của biến.

Trong ngôn ngữ C, cấu trúc là một kiểu dữ liệu do người dùng định nghĩa, là một nhóm các mục được sử dụng để lưu trữ các giá trị của các kiểu dữ liệu giống nhau hoặc khác nhau. Ví dụ, các cấu trúc có thể được sử dụng để lưu trữ thông tin về một học sinh, bao gồm tên, số cuộn, điểm, v.v. Bản ghi của mỗi sinh viên sẽ được đại diện bởi một đối tượng của cấu trúc.

Union cũng là một tập hợp các phần tử có kiểu dữ liệu giống nhau hoặc khác nhau, nhưng vị trí bộ nhớ là như nhau cho tất cả các phần tử. Nó là một kiểu dữ liệu đặc biệt trong ngôn ngữ C, nơi bạn có thể khai báo nhiều biến, nhưng chỉ một biến có thể lưu giá trị tại một thời điểm nhất định. Union là kiểu dữ liệu trong C được hiển thị bằng ‘union’.

Enumeration Data Type – Kiểu dữ liệu liệt kê

Liệt kê là một kiểu dữ liệu do người dùng định nghĩa được sử dụng để gán tên cho các hằng số tích phân và nâng cao khả năng đọc của chương trình C. Từ khóa được sử dụng để liệt kê là ‘enum’ với cú pháp tương tự như cấu trúc: enum flag {const1, const2, const3 …… …};

Có hai lý do chính tại sao liệt kê tốt hơn ‘#define’: là hằng số enum nhận giá trị mặc định bởi trình biên dịch và chúng có thể được khai báo trong phạm vi cục bộ.

Kiểu dữ liệu trống [The type void]

Void là một kiểu dữ liệu trong C không tham chiếu đến bất kỳ giá trị nào của bất kỳ kiểu nào. Nó chủ yếu được sử dụng làm kiểu trả về trong các hàm. Bạn có thể khai báo các con trỏ void để lấy địa chỉ của các biến từ bất kỳ kiểu dữ liệu nào. Những con trỏ này thường được gọi là ‘con trỏ chung’ [generic pointers].

Ví dụ:

Ví dụ về kiểu dữ liệu trong C ở type void

Kết quả trả về trong chương trình ở ví dụ trên: 

Tổng của x và y là 30 

Giá trị được lưu trữ trong con trỏ [ptr] sau khi tham chiếu 10

Trong ví dụ này, hàm có tên ‘add’ có kiểu trả về là void, có nghĩa là nó sẽ không trả về bất kỳ giá trị nào cho phương thức chính. Vì vậy, người dùng phải in thông báo bên trong thân hàm hoặc viết một kiểu trả về khác.

Trong bài viết trên đây của FPT Aptech, hy vọng bạn đã phần nào hiểu được các kiểu dữ liệu trong C và cách chúng được chia thành các danh mục con. Ngoài ra, các chương trình C được cung cấp cho mỗi kiểu dữ liệu hiển thị cách bạn có thể triển khai chúng đúng cách và kết quả sẽ như thế nào nếu bạn thay đổi các thuộc tính của bất kỳ kiểu dữ liệu nào. Vì vậy, sẽ còn rất nhiều thông tin liên quan nữa bạn cần tìm hiểu, chúng được cập nhật đầy đủ và liên tục trên trang website của chúng tôi. Đừng bỏ qua nhé!

 

Video liên quan

Chủ Đề