首页 > 其他分享 >C语言各数据类型所占字节数

C语言各数据类型所占字节数

时间:2022-12-20 14:58:07浏览次数:39  
标签:存储 字节 字节数 数据类型 unsigned long C语言 大小

 

 

编写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\n",
                sizeof(char), CHAR_MIN, CHAR_MAX);
    printf("数据类型:unsigned char,存储大小:%d字节、最小值:%hhu,最大值:%hhu\n",
                sizeof(unsigned char), 0U, UCHAR_MAX);
    printf("数据类型:short,存储大小:%d字节、最小值:%hd,最大值:%hd\n",
                sizeof(short), SHRT_MIN, SHRT_MAX);
    printf("数据类型:unsigned short,存储大小:%d字节、最小值:%hu,最大值:%hu\n",
                sizeof(unsigned short), 0U, USHRT_MAX);
    printf("数据类型:int,存储大小:%d字节、最小值:%d,最大值:%d\n",
                sizeof(int), INT_MIN, INT_MAX);
    printf("数据类型:unsigned int,存储大小:%d字节、最小值:%u,最大值:%u\n",
                sizeof(unsigned int), 0U, UINT_MAX);
    printf("数据类型:long,存储大小:%d字节、最小值:%ld,最大值:%ld\n",
                sizeof(long), LONG_MIN, LONG_MAX);
    printf("数据类型:unsigned long,存储大小:%d字节、最小值:%lu,最大值:%lu\n",
                sizeof(unsigned long), 0LU, ULONG_MAX);
    printf("数据类型:float,存储大小:%d字节、最小值:%g,最大值:%g\n",
                sizeof(float), FLT_MIN, FLT_MAX);
    printf("数据类型:double,存储大小:%d字节、最小值:%lg,最大值:%lg\n",
                sizeof(double), DBL_MIN, DBL_MAX);
    printf("数据类型:long long,存储大小:%d字节、最小值:%lld,最大值:%lld\n",
                sizeof(long long), LLONG_MIN, LLONG_MAX);
    printf("数据类型:unsigned long long,存储大小:%d字节、最小值:%llu,最大值:%llu\n",
                sizeof(unsigned long long), 0LLU, ULLONG_MAX);
    printf("数据类型:long double,存储大小:%d字节、最小值:%Lg,最大值:%Lg\n",
                sizeof(long double), LDBL_MIN, LDBL_MAX);

    return EXIT_SUCCESS;
}

 

运行结果:

 

标签:存储,字节,字节数,数据类型,unsigned,long,C语言,大小
From: https://www.cnblogs.com/Bruce_H21/p/16994163.html

相关文章

  • 【C语言】strlen 计算字符串长度
     ......
  • 【C语言】strcpy() 复制字符串
     ......
  • java常用的数据类型有哪些
    前言在上一篇文章中,壹哥给大家讲解了Java中变量的定义、使用及基本原理等内容,这个内容并不是很难,但却是我们走向Java大神的第一步!壹哥希望你从第一天就要认真对待哦。在......
  • 【C语言】指针的安全、指针的练习、学习指针。
     ......
  • 关于c语言指针还有二级指针的一些知识点理解
    二级指针:指向指针的指针;例如**p,这里p就是一个二级指针,假设p就是指向了一个指针q,q又指向了一个变量a;看下图:对二级指针进行一级解引用是指向指针的地址,在这里*ppa的值......
  • 第二次学习C语言--2022.12.19
    接下来是一串Helloworld的代码编写#include<stdio.h>intmain(void){printf("HelloWorld!");return0;} int表明main()函数返回一个整数,void表明main()不带任......
  • C语言——函数指针
    转载自:https://www.jianshu.com/p/f1cf2aa531d9前言初学C语言的童鞋,通常在学完函数和指针的知识后,已经是萌萌哒,学习到了函数指针(请注意不是函数和指针),更是整个人都不好......
  • Linux C语言程序设计(微课视频版)
     LinuxC语言程序设计(微课视频版) 主编:张同光 出版单位:清华大学出版社 ISBN: ISBN: 出版时间:2023.6 CIP:  内容简介本书以“学完C语言之后知道能做什么”为编写目......
  • 第一章 C语言简述
    C语言发展简史基本概念程序用程序设计语言安排好的处理步骤称为程序。程序是操作指令的集合程序设计用程序设计语言编制程序的过程叫做程序设计语言的发展二进制语言电脑是......
  • 初识C语言
    C语言——>早期不成熟——>成熟——>流行国际标准ANSIC——C89/C90C99/C11并不流行--不少编译器不支持%d——打印整型%c——打印字符%f—打印浮点数字—打小数%p—以地址的......