第3章数据类型、运算符与 表达式
1 第3章 数据类型、运算符与 表达式
31C的数据类型 在计算机领城中,信息载体的各种符号等都看作为数据, 程序设计语言中使用的各种数据都有与之相联系的数 据类型,而数据类型是语言中描述数据结构的机制。 数据类型刻划了数据符号所能具有的值及在其上可施 行的操作。程序中使用的所有数据都必须指定其数据类型。 程序设计语言中为数据指定数据类型的另一目的是为 数据分配规定的存储空间、正确解释与使用数据
2 3.1 C的数据类型 在计算机领域中,信息载体的各种符号等都看作为数据, 程序设计语言中使用的各种数据都有与之相联系的数 据类型,而数据类型是语言中描述数据结构的机制。 数据类型刻划了数据符号所能具有的值及在其上可施 行的操作。程序中使用的所有数据都必须指定其数据类型。 程序设计语言中为数据指定数据类型的另一目的是为 数据分配规定的存储空间、正确解释与使用数据
整型 宇符型 基本类型人 单精度型 实型(浮点型) 双精度型 枚举类型 数组类型 敖据美型{构造美型结构体美型 共用体类型 指针类型 空类型
3
32常量与变量 1)常量 在程序运行期间其值已知且不能改变的量。 直接常量值和类型由书写形式本身确定,不需进 行任何说明便可直接使用。 例如:10、3.14、10e5 符号常量是对直接常量规定了一个名字的常量(用 一个标识符来代替一个直接常量),要求先 定义后使用。 例如:# define price30
4 3.2 常量与变量 1)常量 在程序运行期间其值已知且不能改变的量。 直接常量 值和类型由书写形式本身确定,不需进 行任何说明便可直接使用。 例如:10 、3.14、10e5 符号常量 是对直接常量规定了一个名字的常量(用 一个标识符来代替一个直接常量), 要求先 定义后使用。 例如:#define PRICE 30
(a)使用符号常量的优点 第一、含义清楚如上面的例子,看到 PRICE就知道它 代表价格。因此定义符号常量名时应考虑见名知意。为 提高程序可读性,提倡少用直接常量,多用符号常量。 第二、在需要改变一个常量的值时能做到一改全改。 如在程序中多处用到某物品的单价,若用直接常量表示 价格,则在价格调整时,就需要在程序中作多处修改 若用符号常量 PRICE代表价格,只需改动 #define price 21.5 一处即可。以后在程序中所有以PRCE代表的价格就会 一律自动改为215
5 第一、含义清楚,如上面的例子,看到PRICE 就知道它 代表价格。因此定义符号常量名时应考虑见名知意。为 提高程序可读性,提倡少用直接常量,多用符号常量。 第二、在需要改变一个常量的值时能做到一改全改。 如在程序中多处用到某物品的单价,若用直接常量表示 价格,则在价格调整时,就需要在程序中作多处修改; 若用符号常量 PRICE 代表价格,只需改动: #define PRICE 21.5 一处即可。以后在程序中所有以PRICE代表的价格就会 一律自动改为21.5 。 (a) 使用符号常量的优点
(b)符号常量定义的一般形式 define符号常量名字符序列 例如 #define size 80 define end“10 define format“%d%d%d” #define null o 旦定义了符号常量则在程序中可以使用它们。 例如: int a= size; printf( format, x, y, 2; if(fp==NULD) printf(“ open error!”); 6
6 (b) 符号常量定义的一般形式: #define 符号常量名 字符序列 例如: #define SIZE 80 #define END ‘\0’ #define FORMAT “%d%d%d” #define NULL 0 一旦定义了符号常量则在程序中可以使用它们。 例如: int a = SIZE ; printf ( FORMAT , x , y , z) ; if ( fp==NULL) printf ( “open error!” ) ;
(c)定义符号常量的注意事项 1)必须以#开头; 2)因为它们是C编译系统的预处理程序的宏定义命 令,并不是C语言语句,所以不要以分号 结束。 否则将分号作为常量的一部分; 3)通常使用大写字母序列作为符号常量的名字。但 可用小写字母; 4)符号常量一般在源文件的开始定义,也可以在源 文件的任意行上定义,但必须在使用它们的位置之前定 义 5)所有的符号常量的名字不能相同。 6)在# define和符号常量名的后面至少有一个空格
7 (c) 定义符号常量的注意事项 1) 必须以#开头; 2) 因为它们是C编译系统的预处理程序的宏定义命 令,并不是C语言语句,所以不要以分号“ ;”结束。 否则将分号作为常量的一部分; 3) 通常使用大写字母序列作为符号常量的名字。但 可用小写字母; 4) 符号常量一般在源文件的开始定义,也可以在源 文件的任意行上定义, 但必须在使用它们的位置之前定 义; 5) 所有的符号常量的名字不能相同。 6) 在#define和符号常量名的后面至少有一个空格
2)变量 1、变量的含义 在程序运行期间其值可以改变的量。 2、变量的作用 变量用来表示一个数据对象,保存初值、保存运算 结果、作为运算分量参与运算 3、变量名 每一个变量都有一个名字以供识别(故称之为标识符) 并用它引用该变量。变量名的定义规则: ④字母、数字、下划线组成,首字符必须是字母或下划线。 ②字母区分大小写。 ③C标准没有规定变量名的长度,各编译系统自行规定。 Turbo C允许32个字符
8 2)变量 1、变量的含义 在程序运行期间其值可以改变的量。 2、变量的作用 变量用来表示一个数据对象,保存初值、 保存运算 结果、作为运算分量参与运算。 3、变量名 每一个变量都有一个名字以供识别(故称之为标识符) 并用它引用该变量。变量名的定义规则: ① 字母、数字、下划线组成,首字符必须是字母或下划线。 ② 字母区分大小写。 ③ C 标准没有规定变量名的长度,各编译系统自行规定。 Turbo C 允许32个字符
下列都是正确的标识符: sum total class student name SIC 88 k doub
9 sum _total class student_name SIC _8_8 ok_ _ _doub 下列都是正确的标识符:
下列都是错误的标识符: M.D.john.不能用于组成标识符 123 非字母、下划线开头 1-2-3 是连字符,与下划线不同 s33 S是特殊字符,非字母 /s /不能用于组成标识符 tax rate 中间有空格,是两个标识符
10 下列都是错误的标识符: M . D . john . 不能用于组成标识符 123 非字母、下划线开头 -1-2-3 - 是连字符,与下划线不同 $33 $ 是特殊字符,非字母 c/s / 不能用于组成标识符 tax rate 中间有空格,是两个标识符