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;
    }

  • 相关阅读:
    final修饰符
    数组知识点
    session的作用范围(转)
    c++之list学习
    C++之重载操作符
    C++之浅拷贝构造函数与深拷贝构造函数
    C++之友元
    C++之共有继承、保护继承、私有继承
    C++之类静态成员变量和静态成员函数
    C源程序到可执行文件的四个过程
  • 原文地址:https://www.cnblogs.com/Manuel/p/14339855.html
Copyright © 2011-2022 走看看