Step2

 

1 #define也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令其功能是把该标识符定义为
其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值

2 习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别
符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值

使用符号常量的好处是: 1 含义清楚 2 能做到“一改全改”。

#define CONST_VAR1 123
#define PRICE 30
main() {
int num,total;
num=10;
total=num* PRICE;
printf(“total=%d”,total);
}

3 整型常量的表示方法

4 八进制整常数 八进制数通常是无符号数
以下各数是合法的八进制数:

015(十进制为13)、0101(十进制为65)、0177777(十进制为65535);

以下各数不是合法的八进制数:

256(无前缀0)、03A2(包含了非八进制数码)、-0127(出现了负号)。

5 十六进制整常数:十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下各数是合法的十六进制整常数:
0X2A(十进制为42)、0XA0 (十进制为160)、0XFFFF (十进制为65535);
以下各数不是合法的十六进制整常数:
5A (无前缀0X)、0X3H (含有非十六进制数码)。

6 整型常数的后缀:在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为0~65535,
有符号数为-32768~+32767。八进制无符号数的表示范围为0~0177777。十六进制无符号数的表示范围为0X0~0XFFFF或0x0~0xFFFF。
如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。

例如:
十进制长整常数:
158L (十进制为158)、358000L (十进制为358000);
八进制长整常数:
012L (十进制为10)、077L (十进制为63)、0200000L (十进制为65536);
十六进制长整常数:
0X15L (十进制为21)、0XA5L (十进制为165)、0X10000L (十进制为65536)。

长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基
本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。
无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。

例如:
358u,0x38Au,235Lu均为无符号数。

★★前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。


〇 数值是以补码表示的 1 正数的补码和原码相同 2 负数的补码:将该数的绝对值的二进制形式按位取反再加1

 

8 整型变量的分类
1) 基本型:类型说明符为int,在内存中占2个字节。

2) 短整量:类型说明符为short int或short。所占字节和取值范围均与基本型相同。

3) 长整型:类型说明符为long int或long,在内存中占4个字节。

4) 无符号型:类型说明符为unsigned。

无符号型又可与上述三种类型匹配而构成:

n 无符号基本型:类型说明符为unsigned int或unsigned。

n 无符号短整型:类型说明符为unsigned short。

n 无符号长整型:类型说明符为unsigned long。

各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。

有符号整型变量:最大表示32767

无符号整型变量:最大表示65535

类型说明符 数的范围 字节数
int -32768~32767 即-215~(215-1) 2
unsigned int 0~65535 即0~(216-1) 2
short int -32768~32767 即-215~(215-1) 2
unsigned short int 0~65535 即0~(216-1) 2
long int -2147483648~2147483647 即-231~(231-1) 4
unsigned long 0~4294967295 即0~(232-1) 4

3 整型变量的定义
变量定义的一般形式为:
类型说明符 变量名标识符,变量名标识符,...;
例如:
int a,b,c; (a,b,c为整型变量)
long x,y; (x,y为长整型变量)
unsigned p,q; (p,q为无符号整型变量)
在书写变量定义时,应注意以下几点:
n 允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。
n 最后一个变量名之后必须以“;”号结尾。
n 变量定义必须放在变量使用之前。一般放在函数体的开头部分。
【例3.2】整型变量的定义与使用。
main()
{
int a,b,c,d;
unsigned u;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf(“a+u=%d,b+u=%d\n”,c,d);

☆☆☆ 3.3.2 --> 4小点 整型数据的溢出 

posted @ 2012-11-10 19:43  xpycy  阅读(207)  评论(0编辑  收藏  举报