零基础入门学习C语言:带你学C带你飞
上QQ阅读APP看书,第一时间看更新

1.13 signed和unsigned

还有一对类型限定符是signed和unsigned,它们用于限定char类型和任何整型变量的取值范围。

signed表示该变量是带符号位的,而unsigned表示该变量是不带符号位的。带符号位的变量可以表示负数;而不带符号位的变量只能表示正数,它的存储空间也就相应扩大1倍。默认所有的整型变量都是signed的,也就是带符号位的。

加上signed和unsigned限定符,4种整型就变成了以下8种。

·[signed] short [int]。

·unsigned short [int]。

·[signed] int。

·unsigned int。

·[signed] long [int]。

·unsigned long [int]。

·[signed] long long [int]。

·unsigned long long [int]。

请看下面的例子:

注意:

printf()函数用%u表示输出无符号整数。

程序实现如下:

如果给一个声明为无符号类型的短整型变量赋值一个负数,那么程序就不能如我们所愿地实现了,那么这里为何打印的是66535呢?大家不妨思考一下。