C语言数据类型

数据类型详解

C语言提供了多种基本数据类型,每种类型都有其特定的用途和内存占用。

基本数据类型:

  • 整型 (int, short, long)
  • 浮点型 (float, double)
  • 字符型 (char)
  • 布尔型 (_Bool)
#include <stdio.h>
#include <stdbool.h>
#include <limits.h>
#include <float.h>

int main() {
    // 整型数据类型
    printf("整型数据类型示例:\n");
    printf("int 大小: %d 字节\n", sizeof(int));
    printf("short 大小: %d 字节\n", sizeof(short));
    printf("long 大小: %d 字节\n", sizeof(long));
    printf("long long 大小: %d 字节\n", sizeof(long long));
    
    // 整型范围
    printf("\n整型范围:\n");
    printf("INT_MAX: %d\n", INT_MAX);
    printf("INT_MIN: %d\n", INT_MIN);
    printf("UINT_MAX: %u\n", UINT_MAX);
    
    // 浮点型数据类型
    printf("\n浮点型数据类型示例:\n");
    printf("float 大小: %d 字节\n", sizeof(float));
    printf("double 大小: %d 字节\n", sizeof(double));
    printf("long double 大小: %d 字节\n", sizeof(long double));
    
    // 浮点型范围
    printf("\n浮点型范围:\n");
    printf("FLT_MAX: %e\n", FLT_MAX);
    printf("FLT_MIN: %e\n", FLT_MIN);
    printf("DBL_MAX: %e\n", DBL_MAX);
    printf("DBL_MIN: %e\n", DBL_MIN);
    
    // 字符型数据类型
    printf("\n字符型数据类型示例:\n");
    printf("char 大小: %d 字节\n", sizeof(char));
    printf("unsigned char 大小: %d 字节\n", sizeof(unsigned char));
    
    // 字符型范围
    printf("\n字符型范围:\n");
    printf("CHAR_MAX: %d\n", CHAR_MAX);
    printf("CHAR_MIN: %d\n", CHAR_MIN);
    printf("UCHAR_MAX: %d\n", UCHAR_MAX);
    
    // 布尔型数据类型
    printf("\n布尔型数据类型示例:\n");
    printf("_Bool 大小: %d 字节\n", sizeof(_Bool));
    
    // 类型转换示例
    printf("\n类型转换示例:\n");
    int integer = 100;
    float floating = 100.5;
    char character = 'A';
    
    // 隐式类型转换
    float result1 = integer + floating;
    printf("int + float = %f\n", result1);
    
    // 显式类型转换
    int result2 = (int)floating;
    printf("(int)float = %d\n", result2);
    
    // 字符和整数的转换
    printf("字符 '%c' 的ASCII码是: %d\n", character, (int)character);
    printf("ASCII码 %d 对应的字符是: %c\n", 66, (char)66);
    
    // 数值溢出示例
    printf("\n数值溢出示例:\n");
    int max_int = INT_MAX;
    printf("INT_MAX + 1 = %d\n", max_int + 1);
    
    // 浮点数精度示例
    printf("\n浮点数精度示例:\n");
    float f1 = 0.1f;
    float f2 = 0.2f;
    printf("0.1 + 0.2 = %.20f\n", f1 + f2);
    
    return 0;
}