BASIC
CONTROL STATEMENTS
DATA TYPE
FUNCTIONS
FILE I/O
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Các kiểu dữ liệu trong C ( int - float - double - char ...)

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.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thứ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.

Bài viết này được đăng tại [free tuts .net]

Ví dụ:

  • 0, 10, -7 là các số nguyên
  • 0.4, 0.7 không phải là số nguyên

Để khai báo một biến kiểu int thì ta sử dụng cú pháp như sau:

int ten_bien;

Ngoài ra ta có thể khai báo nhiều biến liên tiếp như sau:

int id, age;

Kích thước của kiểu Int thường là 4 bytes (32 bits), tức giao động vào khoảng -2147483648 đến 2147483647.

Kiểu float và double

Đây là kiểu số thực, dùng để chứa những số có dấu phẩy động. Ví dụ 2.55.6 là những số thực.

Dưới đây là cách khai báo biến kiểu số thực:

float salary;
double price;

Trong C, số dấu phẩy động cũng có thể được biểu diễn theo cấp số nhân. Ví dụ

float normalizationFactor = 22.442e2;

Câu hỏi đặt ra là sự khác nhau giữa float và double là gì?

Về tính chất thì cả hai giống nhau, chỉ khác nhau về kích thước như sau:

  • float có kích thước 4 bytes
  • double có kích thước 8 bytes

Kiểu char

Kiểu char rất đặt biệt, nó dùng để lưu trữ một ký tự bất kì, và ký tự đó phải ở định dạng chuỗi. Vì vậy khi gán giá trị cho nó ta phải dùng dấu nháy để bao quanh ký tự cần gán lại.

Ví dụ:

char test = 'h';

Kích thước của kiểu char là 1 byte.

Kiểu void

Đây là kiểu dữ liệu khá đặt biệt, nó có ý nghĩa không là gì cả, thường được dùng trong những function không có giá trị trả về. Vấn đề này chúng ta sẽ học ở những bài tiếp theo nhé.

Kiểu short và long

Nếu bạn muốn lưu trữ một con số rất lớn và kiểu dữ liệu hiện tại không đáp ứng được thì hãy thêm từ khóa long vào lúc khai báo nhé. Ví dụ:

long a;
long long b;
long double c;

Còn nếu bạn chắc chắn số nguyên lưu trữ sẽ rất nhỏ nên không cần phải phí phạm kích thước thì hãy sư dụng từ khóa short nhé.

short d;

Bây giờ chúng ta thử xem kích thước của các kiểu dữ liệu bằng cách dùng hàm sizeof().

#include <stdio.h>      
int main() {
  short a;
  long b;
  long long c;
  long double d;

  printf("size of short = %d bytes\n", sizeof(a));
  printf("size of long = %d bytes\n", sizeof(b));
  printf("size of long long = %d bytes\n", sizeof(c));
  printf("size of long double= %d bytes\n", sizeof(d));
  return 0;
}

Kết quả thu được như sau:

ket qua size of JPG

Trên là danh sách các kiểu dữ liệu thường dùng trong ngôn ngữ C, bạn phải nhớ kích thước và công dụng của từng kiểu để sau này sử dụng cho phù hợp nhé. Ví dụ muốn lưu trữ số nguyên thì dùng kiểu int, số thực thì kiểu float hoặc double, ký tự thì kiểu char.

Vẫn còn một số kiểu nâng cao nữa như: Mảng, Pointer, Object, nhưng ta sẽ học nó ở những bài nâng cao.

Cùng chuyên mục:

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thông dụng của Map trong C++

[STL] Các hàm thông dụng của Map trong C++

Top