C/C++中的基本数据类型

在C语言中,支持下面这些基本数据类型:

数据类型占用字节取值范围备注
short2-32768 ~ 32767短整型
int4-2147483648 ~ 2147483647整型
long4 / 8-2147483648 ~ 2147483647
-9223372036854775808 ~ 9223372036854775807
长整型:在windows中或32位linux中占4字节;64位linux中占8字节
long long8-9223372036854775808 ~ 9223372036854775807长整型
unsigned short20 ~ 65535无符号短整型
unsigned int40 ~ 4294967295无符号整型
unsigned long4 / 80 ~ 4294967295
0 ~ 18446744073709551615
无符号长整型
unsigned long long80 ~ 18446744073709551615无符号长整型:在windows中或32位linux中占4字节;64位linux中占8字节
float41.175*10^-38 ~ 1.175*10^38单精度浮点型
double82.225*10^-308 ~ 1.797*10^308双精度浮点型
char1ASCII表中的字母、数字、符号字符

这些基本类型中,有一个比较特殊的数据类型long long,与long类型不同的是,不论是哪个编译器它都是占8字节。
在表示数值范围:double > float > long long > long > int > short > char。
在给变量赋值时,整型值默认为int类型,浮点型默认为double类型,也可以通过在数值后面添加后缀指定数据类型:long(L)、long long(LL)、float(F)。
可以通过下面的方式获取到数据类型值的范围:

#include <stdio.h>
#include <limits.h>

int main() {
    printf("short size %d: %d ~ %d\n", sizeof(short), SHRT_MIN, SHRT_MAX);

    printf("int size %d: %d ~ %d\n", sizeof(int), INT_MIN, INT_MAX);

    printf("long size %d: %ld ~ %ld\n", sizeof(long), LONG_MIN, LONG_MAX);

    printf("long long size %d: %lld ~ %lld\n", sizeof(long long), LLONG_MIN, LLONG_MAX);

    printf("unsigned short size %d: %u ~ %u\n", sizeof(unsigned short), 0, USHRT_MAX);

    printf("unsigned int size %d: %u~%u\n", sizeof(unsigned int), 0, UINT_MAX);

    printf("unsigned long size %d: %lu ~ %lu\n", sizeof(unsigned long), 0, ULONG_MAX);

    printf("unsigned long long size %d: %u ~ %llu\n", sizeof(unsigned long long), 0, ULLONG_MAX);

    printf("float size %d\n", sizeof(float));
    
    printf("double size %d\n", sizeof(double));

    return 0;
}

不同的编译器执行上面的代码输出可能不同,在64位linux环境下执行上面的代码输出:

short size 2: -32768 ~ 32767
int size 4: -2147483648 ~ 2147483647
long size 8: -9223372036854775808 ~ 9223372036854775807
long long size 8: -9223372036854775808 ~ 9223372036854775807
unsigned short size 2: 0 ~ 65535
unsigned int size 4: 0~4294967295
unsigned long size 8: 0 ~ 18446744073709551615
unsigned long long size 8: 0 ~ 18446744073709551615
float size 4
double size 8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值