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
c语言怎么用printf// 输出 signed 默认就是 signed,使⽤%i
// 输出 unsigned 使⽤%u 输出

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。