第二讲、C语言的常量和变量
一、程序设计
C编译程序将数据划分为不同的数据类型,并为每一种数据类型规定了在内存中的储存单元字节数和如何表示。
二、数据类型
在C语言中,按被定义数据的性质、表达形式、占存储空间以及构造特点其数据类型分为:

三、数据的计算机表示
整型
长整型
无符号整型
无符号长整型
不同的差别就在于采用不同位数的二进制编码方式,占用不同的存储空间,就会有不同的数据类型范围。
在数据中整数是一个无限的集合,即整数的表示范围为负无穷到正无穷。C语言标准本身也并不限制各类数据类型所占的存储字节数。
在计算器中,所有数值的取值范围受限于机器所能表示的范围,不同的计算机软件系统对数据的存储有具体的规定。
BC++3.1对C语言整形的规定:
整形存储字节:2字节 取值范围:-32768——32767
长整型存储字节:4字节 取值范围:-2147483648——2147483647
无符号整型存储字节:2字节 取值范围:0——65535
无符号长整形存储字节:4字节 32位二进制数全部用来表示数值;
无符号整数型数能表示的数的取值范围为0——4294967295.
整形数据的计算机内部表示
计算机内部总是采用二进制补码形式表示一个整形数据
整数型

无符号整型数

浮点数
单精度型
双精度型
长精度型
-
BC31中浮点数在计算机中是按照指数形式存储的,即把一个浮点数据分成符号位,指数和尾数三部分。
-
表示尾数部分的位数越多,数的有效位就越多,数的精确度就越高。表示指数部分的位数越多,数的表示范围就越大。
浮点数的计算机内存存储形式:

单精度浮点数的精度就取决于
小数部分的23位二进制位所能表达
的数值位数(最小小数2-23最大小数
1-2-23),将其转换为十进制,最多
可表示7位十进制数字,所以单精度
浮点数的有效位约为7位。
引进双精度型和长双精度型浮点数,用于扩展存储位数,目的是增加实数的长度,减少累积误差,改善计算精度。

1.指数位全为0,这时浮点数的指数等于1-127(或者1-1023),尾数部分不再加上第一位的1,而是还原为0.xxxxxx的小数。这样做是为了表示士0,以及接近于0的很小的数字,
2.指数位全为1,这时,如果尾数部分全为0,表示土无穷大(正负取决于符号位s);如果尾数部分不全为0,表示这个数不是一个数(NaN)

四、C语言中的常量
C语言提供的常量有,
◆数值常量(整型常量,实型常量)
◆字符型常量(字符常量,字符串常量)
◆符号常量
C程序中常量是直接以自身的存在形式体现其值和类型;
常量并不占内存,在程序运行时它作为操作对象直接出现在运
算器的各种寄存器中。
整型常量
十进制整型常量:例如 56、-100、2004;568277464
八进制整常量:以0开头,数码取值为0~7。如:017(十进制为15)、0101(十进制65)、0177777(十进制为65535);
十六进制整常量:前缀为0X或0x,其数码取值为0~9,A~F或a~f。
如:0X2A(十进制为42)、0xA0(十进制为160)、0XFFFF(十进制为65535)
整型常量的后缀:长整型数是用后缀"工"或""来表示的。如:158L(十进制为158),012L(十进制为10)
浮点型型常量

字符型常量
- 用单引号括起来的一个字符,单引号中的内容不能是单引号,双引号和反斜线。
- 字符常量的值就是该字符的ASCII码值。一个字符常量在内存中只占一个字节。
转义字符是一种特殊的字符型常量。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义。广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。

字符串常量
字符串常量:由一对双引号括起的字符序列
如:"CHINA","C program"等。
字符串"CHINA"在内存中所占的字节为:

字符型常量与字符串常量区别
1)字符常量由单引号括起来,字符串常量由双引号括起来
2)字符常量只能是单个字符,字符串常量则可以含一个或多个字符
3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量
赋予一个字符变量。
4)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字符数加1。增加的一个字节中存放字符"\0'(ASCI码为0)。这是字符串结束的标志。
符号常量
其功能是用标识符代替后面常量。
如: #define G 9.8
使用符号常量的好处是:含义清楚;
能做到“一改全改”

五、C语言中的变量
变量:在程序执行过程中,值可以改
变的量,变量是表述数据存储的基本概念。

程序里的一个变量可以看成是一个存储数据的容器,其功能是存储数据。对变量的两个基本操作:向变量中存入数据-“赋值”;取得变量的当前值一“取值”。

- 必须是以英文字母或下划线开头的,由字母、数字和下划线组成的字符序列。
- 不能与C语言的关键字(保留字)重名,
- C语言对变量名的大小写敏感。
- 在C语言的长期使用过程中还形成了一些约定俗成的规则:
- 尽量使变量名能够表达出该变量的含义。
- 用户最好不要用下划线来作为变量名的开头。
- 习惯上符号常量的标识符用大写字母,变量标识符可大小写结合(不全用大写)。


