Thông tin về các kiểu dữ liệu trong C mà bạn thường gặp

C là một ngôn ngữ lập trình rất mạnh mẽ, được sử dụng để phát triển hệ điều hành, cơ sở dữ liệu và nhiều hơn thế nữa. Đây là một ngôn ngữ tuyệt vời những người quan tâm đến ngành công nghệ thông tin có thể làm quen. Để làm việc với ngôn ngữ lập trình C, bạn sẽ cần phải hiểu rõ về các kiểu dữ liệu C. Bất cứ khi nào muốn xác định một biến trong chương trình C, chúng ta cần chỉ định kiểu dữ liệu. Điều này giúp trình biên dịch biết loại dữ liệu nào muốn thực hiện và những thao tác nào có thể được thực hiện trên nó. Hãy cùng FPT Aptech đi sâu tìm hiểu kỹ hơn về kiểu dữ liệu trong C ngay sau đây.

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

Kiểu dữ liệu ( data type ) hoàn toàn có thể hiểu đơn thuần là những kiểu dữ liệu được tàng trữ sẵn trong chương trình C. Chúng thường được sử dụng trong khi xác lập 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 lập 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ị .
Các kiểu dữ liệu trong C là kiến thức cơ bản mà “dân” lập trình cần biết
Ví dụ, nếu biến là một vùng chứa thì kiểu dữ liệu sẽ là kiểu vùng chứa, nó sẽ thông tin cho bạn đồ vật mà nó nên tiềm ẩn. Tức là bạn sẽ không tàng trữ một giá trị là số nguyên trong một biến kiểu dữ liệu String, cũng giống như bạn sẽ không bỏ một vật hình tròn trụ vào ô vuông được .

Mỗi biến trong C có một kiểu dữ liệu liên quan. Mỗi kiểu dữ liệu trong C bắt buộc phải có số lượng bộ nhớ nhất định và có các hoạt động cụ thể có thể thực hiện trên biến C. Kiểu dữ liệu trong C cũng sẽ chỉ định kiểu dữ liệu mà biến có thể lưu trữ như kiểu số nguyên (integer, char), kiểu số thực (float & double),… Kiểu dữ liệu là tập hợp dữ liệu với các giá trị có giá trị cố định, ý nghĩa cũng như đặc điểm của nó. 

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ẽ tàng trữ nhiều dữ liệu khác nhau của nhân viên cấp dưới của họ như Tên, ID nhân viên cấp dưới, Tuổi, Mức lương, Địa chỉ, Số điện thoại cảm ứng, v.v.
Những dữ liệu này là các giá trị chứa bảng vần âm, số …., vì thế, để giúp việc giải quyết và 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ư :

  • Tên : String
  • ID : Số nguyên – Integer
  • Mức lương : Float or Double
  • Số điện thoại cảm ứng : String

Để hoàn toàn có thể hiểu được ví dụ này thì hãy cùng chúng tôi khám phá 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 tương hỗ 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 hoàn toàn có thể biến hóa theo hệ quản lý và đ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 tàng trữ của các kiểu dữ liệu này thường hoàn toàn có thể biến hóa tùy thuộc vào hệ điều hành quản lý 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 cỡ tàng trữ và khoanh vùng 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,2 E – 38 đến 3,4 E + 38 ( 6 chữ số thập phân )
double 8 byte 2.3 E – 308 đến 1.7 E + 308 ( 15 chữ số thập phân )
Long double 10 byte 3,4 E – 4932 đến 1,1 E + 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 từ C, sẽ sống sót bốn kiểu dữ liệu khác nhau hoàn toàn có thể được sử dụng để phân biệt và tàng trữ nhiều kiểu dữ liệu khác nhau, gồm có :

  • Các kiểu dữ liệu cơ bản ( Basic Types ) là các kiểu số học và được phân loại thành kiểu số nguyên ( int, char ) và kiểu thập phân hoặc hoàn toàn có thể gọi là dấu phẩy động ( float và double ) .
  • Các kiểu dữ liệu có nguồn gốc ( Derived types ) gồm Con trỏ ( pointer ), Kiểu mảng ( array ), Kiểu cấu trúc ( structure ), Kiểu union, Kiểu hàm ( function ) .
  • Kiểu dữ liệu liệt kê ( Enumerated types ) : Cũng là kiểu số học và chúng được sử dụng để định nghĩa các biến chỉ hoàn toàn có thể gán các giá trị nguyên rời rạc nhất định trong hàng loạt chương trình .
  • Kiểu dữ liệu trống ( The type void ) : Void xác lập kiểu chỉ ra rằng không có giá trị nào .

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 hoàn toàn có thể tàng 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ó hoàn toà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 khoảng trống tàng trữ. Int thường là chiếm 2 hoặc 4 byte, và long chiếm 8 byte trong hệ điều hành quản lý 64 bit và 4 byte trong hệ điều hành quản lý 32 bit .
Vì vậy, nếu bạn cố gắng nỗ lực 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ỉ hàng loạt 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 thi một phép toán học, nếu hiệu quả trả về là giá trị thập phân, thì biến sẽ chỉ gật đầu số nguyên và vô hiệu các số sau dấu thập phân. Đối với int ngắn, giá trị không đúng mự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 được cho phép người dùng tàng 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 tàng 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 tàng trữ của biến float là 4 byte, nhưng size hoàn toàn có thể khác nhau so với các bộ giải quyết và 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 diễn 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 diễn dưới dạng số nguyên 0 .
Nếu bạn cố gắng nỗ lực in các giá trị float với ‘ % d ’, thì hiệu 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 hiển thị đầu ra. Do đó, so 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, tác dụng 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ựa như như float, nhưng ở đây, bạn hoàn toàn có thể có tối đa 10 chữ số sau vị trí thập phân. Nó được đại diện thay mặt bởi từ khóa ‘ double ’ và hầu hết được sử dụng trong các chương trình khoa học đòi hỏi độ đúng mực cao .

Char – Ký tự

Char được sử dụng để tàng trữ các giá trị ký tự đơn, gồm có 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 hoàn toàn có thể tàng 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 để tàng trữ các giá trị đơn lẻ của các dạng khác nhau, nhưng nếu bạn cần tàng 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 được cho phép bạn phối hợp các kiểu dữ liệu cơ bản và tàng 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 lập, có nghĩa là bạn hoàn toàn có thể tổng hợp nhiều thành phần của các kiểu dữ liệu tương tự như theo nhu yế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 thành phần kiểu dữ liệu tựa như được tàng trữ trong một vị trí bộ nhớ liền kề. Ví dụ : bạn hoàn toàn có thể tàng 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. Để tàng trữ địa chỉ của một biến, biến con trỏ phải có cùng kiểu dữ liệu. Point được cho phép người dùng thực thi cấp phép bộ nhớ động bằng ngôn từ 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 hoàn toàn có thể chuyển con trỏ có địa chỉ của biến .
Trong ngôn từ 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 để tàng 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 hoàn toàn có thể được sử dụng để tàng trữ thông tin về một học viên, gồm có tên, số cuộn, điểm, v.v. Bản ghi của mỗi sinh viên sẽ được đại diện thay mặt bởi một đối tượng người tiêu dùng của cấu trúc .
Union cũng là một tập hợp các thành phần có kiểu dữ liệu giống nhau hoặc khác nhau, nhưng vị trí bộ nhớ là như nhau cho toàn bộ các thành phần. Nó là một kiểu dữ liệu đặc biệt quan trọng trong ngôn từ C, nơi bạn hoàn toàn có thể khai báo nhiều biến, nhưng chỉ một biến hoàn toàn có thể lưu giá trị tại một thời gian 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 năng lực đọ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ư như cấu trúc : enum flag { const1, const2, const3 … … … } ;
Có hai nguyên 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 hoàn toàn có thể được khai báo trong khoanh vùng 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ó đa phần được sử dụng làm kiểu trả về trong các hàm. Bạn hoàn toà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 tàng 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 pháp chính. Vì vậy, người dùng phải in thông tin 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é!

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 24 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.

Thông tin về các kiểu dữ liệu trong C mà bạn thường gặp

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay