zoukankan      html  css  js  c++  java
  • 各数据类型取值范围和所占字节数

    https://zhuanlan.zhihu.com/p/98674721

    编写C程序时需要考虑每种数据类型在内存中所占的内存大小,即使同一种数据类型在不同平台下所占内存大小亦不相同。为了得到某个类型在特定平台上的准确大写,可以使用sizeof运算符,表达式sizeof(type)得到对象或类型的存储字节大小。

     

    • char存储大小1字节,值范围-128~127;
    • unsigned char存储大小1字节,值范围0~255;
    • short存储大小2字节,值范围-32768~32767;
    • unsigned short存储大小2字节,值范围0~65535;
    • int——
    16位系统存储大小2字节,值范围-32768~32767,
    32、64位系统存储大小4字节,值范围-2147483648~2147483647;
    • unsigned int——
    16位系统存储大小2字节,值范围0~65535,
    32、64位系统存储大小4字节,值范围0~4294967295;
    • long——
    16、32位系统存储大小4字节,值范围-2147483648~2147483647,
    64位系统存储大小8字节,值范围-9223372036854775808~9223372036854775807;
    • unsigned long——
    16、32位系统存储大小4字节,值范围0~4294967295,
    64位系统存储大小8字节,值范围0~18446744073709551615;
    • float存储大小4字节,值范围1.175494351*10^-38~3.402823466*10^38;
    • double存储大小8字节,值范围2.2250738585072014*10^-308~1.7976931348623158*10^308;
    • long long存储大小8字节,值范围-9223372036854775808~9223372036854775807;
    • unsigned long long存储大小8字节,值范围0~18446744073709551615;
    • long double——
    16位系统存储大小8字节,值范围2.22507*10^-308~1.79769*10^308,
    32位系统存储大小12字节(有效位10字节,为了对齐实际分配12字节),值范围3.4*10^-4932 到 1.1*10^4932,
    64位系统存储大小16字节(有效位10字节,为了对齐实际分配16字节),值范围3.4*10^-4932 到 1.1*10^4932;
    • 指针——
    16位系统存储大小2字节,
    32位系统存储大小4字节,
    64位系统存储大小8字节。

     

    #include <stdio.h>
    #include <stdlib.h>
    #include <float.h>
    
    int main(void)
    {
        printf("数据类型:char,存储大小:%d字节、最小值:%hhd,最大值:%hhd
    ",
                    sizeof(char), CHAR_MIN, CHAR_MAX);
        printf("数据类型:unsigned char,存储大小:%d字节、最小值:%hhu,最大值:%hhu
    ",
                    sizeof(unsigned char), 0U, UCHAR_MAX);
        printf("数据类型:short,存储大小:%d字节、最小值:%hd,最大值:%hd
    ",
                    sizeof(short), SHRT_MIN, SHRT_MAX);
        printf("数据类型:unsigned short,存储大小:%d字节、最小值:%hu,最大值:%hu
    ",
                    sizeof(unsigned short), 0U, USHRT_MAX);
        printf("数据类型:int,存储大小:%d字节、最小值:%d,最大值:%d
    ",
                    sizeof(int), INT_MIN, INT_MAX);
        printf("数据类型:unsigned int,存储大小:%d字节、最小值:%u,最大值:%u
    ",
                    sizeof(unsigned int), 0U, UINT_MAX);
        printf("数据类型:long,存储大小:%d字节、最小值:%ld,最大值:%ld
    ",
                    sizeof(long), LONG_MIN, LONG_MAX);
        printf("数据类型:unsigned long,存储大小:%d字节、最小值:%lu,最大值:%lu
    ",
                    sizeof(unsigned long), 0LU, ULONG_MAX);
        printf("数据类型:float,存储大小:%d字节、最小值:%g,最大值:%g
    ",
                    sizeof(float), FLT_MIN, FLT_MAX);
        printf("数据类型:double,存储大小:%d字节、最小值:%lg,最大值:%lg
    ",
                    sizeof(double), DBL_MIN, DBL_MAX);
        printf("数据类型:long long,存储大小:%d字节、最小值:%lld,最大值:%lld
    ",
                    sizeof(long long), LLONG_MIN, LLONG_MAX);
        printf("数据类型:unsigned long long,存储大小:%d字节、最小值:%llu,最大值:%llu
    ",
                    sizeof(unsigned long long), 0LLU, ULLONG_MAX);
        printf("数据类型:long double,存储大小:%d字节、最小值:%Lg,最大值:%Lg
    ",
                    sizeof(long double), LDBL_MIN, LDBL_MAX);
    
        return EXIT_SUCCESS;
    }

  • 相关阅读:
    自然语言交流系统 phxnet团队 创新实训 项目博客 (十一)
    install ubuntu on Android mobile phone
    Mac OS, Mac OSX 与Darwin
    About darwin OS
    自然语言交流系统 phxnet团队 创新实训 项目博客 (十)
    Linux下编译安装qemu和libvirt
    libvirt(virsh命令总结)
    深入浅出 kvm qemu libvirt
    自然语言交流系统 phxnet团队 创新实训 项目博客 (九)
    自然语言交流系统 phxnet团队 创新实训 项目博客 (八)
  • 原文地址:https://www.cnblogs.com/Manuel/p/14339855.html
Copyright © 2011-2022 走看看