【C语言】一文概括所有C语言中各数据类型的大小

本文详细列出了C语言中各种基本数据类型如char,short,int,long,float,double等在不同位系统下的存储大小及其对应的值范围,还包括了指针和特定类型如void*,size_t的字节数。同时提到了结构体的字节对齐和编译器的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 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字节。
  • 结构体的大小是其成员大小之和,但受到字节对齐的影响。这个对齐规则可以因编译器和编译选项而异,通常是按照机器字长的倍数来对齐。 
  • `void*` 类型:在32位系统上,`void*` 类型占用4字节,而在64位系统上,`void*` 类型占用8字节。
  • `size_t` 类型:在32位系统上,`size_t` 类型通常占用4字节,而在64位系统上,`size_t` 类型通常占用8字节。`size_t` 类型用于表示对象大小或数组索引。
    #include <stdio.h>
    
    int main() {
        printf("Size of char: %d bytes\n", sizeof(char));
        printf("Size of short: %d bytes\n", sizeof(short));
        printf("Size of int: %d bytes\n", sizeof(int));
        printf("Size of long: %d bytes\n", sizeof(long));
        printf("Size of long long: %d bytes\n", sizeof(long long));
        printf("Size of float: %d bytes\n", sizeof(float));
        printf("Size of double: %d bytes\n", sizeof(double));
        printf("Size of long double: %d bytes\n", sizeof(long double));
        
        return 0;
    }

    结果:

    Size of char: 1 byte
    Size of short: 2 bytes
    Size of int: 4 bytes
    Size of long: 4 bytes
    Size of long long: 8 bytes
    Size of float: 4 bytes
    Size of double: 8 bytes
    Size of long double: 16 bytes
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小白—小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值