c语言long说明符,C语言-类型说明符 long,short,unsigned,signed

类型说明符基本概念

C 语言提供了一下四种说明符,四个都属于关键字;

short短型等价于 short int

long 长型 等价于 long int

signed 有符号型

unsigned 无符号型

这些说明符一般就是用来修饰 int 类型的,所以在使用时可以省略 int

short和 long

short 和 long 可以提供不同长度的整型数,也就是可以概念整型数的取值范围

在 64 位编译器下,int 占用 4 个字节(32bit),取值范围是-2 ** 31~2 ** 31-1

short占用 2 个字节(16bit),取值范围是-2 ** 15~2 ** 15-1

long 占用 8 个字节(64bit),取值范围是-2 ** 63~2 ** 63-1

总结一下,在 64 位编译器下

short 占 2 个字节

int 占 4 个字节

long 占 8 个字节

因此如果使用的整数不是很大的话可以使用 short 代替 int,这样的话可以节省内存开销

int main(int argc, const char * argv[]) {

/*

short 2 个字节

int 4 个字节

long 8 个字节

long long 8个字节

*/

int num = 123456789999;

printf("使用int 来输出;%i\n",num); // -1097261585

// C语言中不看怎么存,只看怎么取

long num1 = 123456789999;

printf("使用int 来输出;%li\n",num1); // 123456789999 使用%li 或者 %ld 输出

long long num2 = 123456789999;

printf("使用int 来输出;%li\n",num2);

// long long 和 long 的区别

// 在 64 位的编译器下没有区别,在 32 位的编译器下 long long占 8 个字节,long 占 4个字节

return 0;

}

如果要输出 short int 的话使用%hi 或者%hd 输出

unsigned 和 signed

unsigned 无符号修饰

signed 有符号修饰

/*

signed

unsigned

*/

// 如果给变量前面加上 signed 修饰符的话,代表当前变量的取值范围是正数,负数,零

// 就代表把二进制的最高位作为符号位,默认是有 signed 的修饰的

signed int num = 9;

// 如果给变量前面加上了 unsigned 修饰符的话,代表当前变量的取值范围只能是正数和零

// 如果想打印无符号的变量要使用%u 进行输出

// 代表不把二进制的最高位w作为符号位,

unsigned int num1 = -11; // 4294967285,可以正常输出零,正数

printf("num1 前面加了 unsigned 进行修饰:%u\n",num1);

return 0;

不同类型的说明符可以混合使用

// 混合使用

// 相同类型不能在一起使用

long unsigned int num = 111111111111111199;

printf("混合使用输出:%lu\n",num);

// 输出 long 使用%l

// 输出 short 使用%h

// 输出 long long 使用%ll

// 输出 signed 默认就是 signed,使用%i

// 输出 unsigned 使用%u 输出

原文:https://www.cnblogs.com/shanshan-test/p/12977496.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值