没有小数位或指数的数据类型被称为整型数据,根据使用方法的分类,整型数据可分为整型常量和整型变量。根据定义或显示的数制分类,可分为十进制、八进制和十六进制。
2.3.1 整型常量
整型常量是在运算中不可改变的整型数据类型,可使用十进制、八进制和十六进制描述一个整型常量。十进制整型常量的表述形式是:
[正负符号] 十进制整数值
其中十进制整数值可以是从 0 到 9 的一个或多个十进制数位,第 1 位可以是正负符号,但不能是0。八进制整型常量的表述形式是:
[正负符号]x八进制整数值
八进制整数值可以是从 0 到 7 的一个或多个八进制数位,正负符号后的第 1 位必须是0。十六进制整型常量的表述形式是:
[正负符号]0x 十六进制整数值 // 使用小写x
[正负符号]0X 十六进制整数值 // 使用大写X
正负符号后第 1 位必须是 0,第2位必须是小写x或大写X。十六进制的 10~15分别用字母 A~F 表示。(例如十进制 162,用八进制表示为0242,用十进制表示为 0xA2)。
正值整数常量可省略正负符号,负值整型常量必须在数值前加上负号“-”说明。整型常量的数据类型取决于数值本身,如果常量表达式没有使用负号,编译器会认为该常量为无符号数。编译器会根据整型常量的长度自动分配存储空间,甚至可以认为常量的数据长度是没有上限的。但并不代表任意大的数据都能被C语言处理。
八进制和十六进制整型常量在存储方式上与十进制数并无区别,只是定义时使用了不同的表述方法。八进制和十六进制整型常量的存储空间长度也有数值来决定,并且可以存在负值。
2.3.3 整型变量
为变量命名的过程称为“声明”,C语言规定,变量使用前必须声明。整型变量用 int修饰符声明,参见下列源代码。
main() { int a, c; // 声明整型变量 unsigned int b; // 声明无符号整型变量 a = 15; // 为变量 a 赋值 b = a; // 为变量 b 赋值,b 的值来至 a c = a + b; // 为变量 c 赋值,c 的值来至 a 与 b 的和 printf("c = %d ", c); // 输出提示字符串和 c 的值 }
通过上例可以看到,不同类型的整型数据也能进行算术运算。