Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C hiển thị phạm vi các kiểu dữ liệu dưới dạng bảng

Kiểu dữ liệu trong C

Kiểu dữ liệu xác định tập giá trị và loại dữ liệu lưu trữ trong biến. Phân loại:

  • Kiểu cơ bản (Primary): integer, character, floating-point, double.
  • Kiểu dẫn xuất (Derived): mảng, con trỏ, cấu trúc, union...

1. Kiểu nguyên (Integral Types)

Integer

KiểuKích thước (byte)Phạm viĐịnh dạng
short int / signed short int1-128 đến 127%h
unsigned short int10 đến 255%uh
int / signed int4-32768 đến 32767%d hoặc %i
unsigned int40 đến 65535%u
long int / signed long int4-2147483648 đến 2147483647%ld
unsigned long int40 đến 4294967295%lu

Character

KiểuKích thướcPhạm viĐịnh dạng
char / signed char1-128 đến 127%c
unsigned char10 đến 255%c

2. Kiểu thực (Floating-point Types)

KiểuKích thướcPhạm viĐịnh dạng
float43.4E-38 đến 3.4E+38%f
double81.7E-308 đến 1.7E+308%lf
long double163.4E-4932 đến 1.1E+4932%Lf

Chương trình in bảng phạm vi (dùng limits.h)

#include <stdio.h>
#include <limits.h>

int main() {
    printf("KIEU DU LIEU\t\t PHAM VI\n");
    printf("-----------\t\t---------\n");
    printf("short min\t\t%d\n", SHRT_MIN);
    printf("short max\t\t%d\n", SHRT_MAX);
    printf("int min\t\t\t%d\n", INT_MIN);
    printf("int max\t\t\t%d\n", INT_MAX);
    printf("char min\t\t%d\n", CHAR_MIN);
    printf("char max\t\t%d\n", CHAR_MAX);
    printf("long min\t\t%ld\n", LONG_MIN);
    printf("long max\t\t%ld\n", LONG_MAX);
    printf("unsigned char\t\t%u\n", UCHAR_MAX);
    printf("unsigned long\t\t%lu\n", ULONG_MAX);
    printf("unsigned int\t\t%u\n", UINT_MAX);
    printf("unsigned short\t\t%u\n", USHRT_MAX);
    return 0;
}

Kết quả (ví dụ trên hệ thống 32-bit)

KIEU DU LIEU     PHAM VI
-----------      ---------
short min        -32768
short max        32767
int min          -2147483648
int max          2147483647
char min         -128
char max         127
long min         -2147483648
long max         2147483647
unsigned char    255
unsigned long    4294967295
unsigned int     4294967295
unsigned short   65535