第三部分
1.标识符
标识符要求:
(1)标识符是由字符、数字、下划线组成,但必须是以字母、下划线开头,不能以数字开头。 (2)标识符必须区分大小写 (3)标识符的长度不能超过8位。
(4)不能用C语言系统中的关键字作为标识符(if while)。预定义标识符(printf scanf )。用户定义标识符
2.常量
在程序运行过程中,其值不能被改变的量称为常量。
1
2
程序:求园的面积 #include \"stdio.h\" #define PI 3.14159 main() {
float r,s; r=5.0;
3
s=PI*r*r;
printf(\"s=%f\\n\}
3.变量
变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间,变量的值是可以改变的。
变量必须先定义后使用,在定义时指定该变量的名字和类型。一个变量应该有一个名字,以便被引用。请注意区分变量名和变量值。例如a=3, a是变量名,3是变量的值。即存放在变量a的内存单元中的数据,变量名实际上是一个名字代表的一个存储地址。在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。
n 其值可以改变的量称为变量 n 变量有一个名字,即标识符
n 变量在存储器中占据一定的存储单元 n 变量占据存储空间的大小由其类型决定
n 程序中的变量参与计算时,从这个变量所占据的存储单元里取出存储的数据的值 n 变量要“先定义,后使用”
4
整型数据的分类 分类:
1)signed有符号整型:int基本整型、short短整型、long长整型
2)unsigned无符号整型:unsigned无符号基本整型、unsigned short 无符号短整型、unsigned long长整型
注意:若要表示一个长整型常量,则应该在一个证整型常量后面加一个字母后缀l或者L。例如:long i; i=32768l
无论是短整型还是长整型,都别识别为有符号整数,无符号整数应该在数字末尾加上“u”
5
或者“U”,长整型无符号整数常量,加“lu”或者是“LU”.
无符号常量不能表示成小于0的负数。例如-200u是不合法的。
6
7
8
整数在内存中的存储形式 1.存储单位
在计算机中,内存存储器的最小存储单位称为“位(bit)”,每一个位中或者存储“0”,或者存放“1”,因此成为二进制位,大多数计算机把8个二进制位组成一个“字节(byte)”。
如果一台计算机系统以两个字节(16个二进制位)来存放一条机器指令,就称这台计算机字长为16位。
最右边的一位称为“最低位”,最左边的一位称为“最高位”。若是正整数,最高位是“0”;若是负整数,最高位是“1”
2.存储方式
正整数:用两个字节存放的最大正整数32768,在内存中0111111111111111.
负整数:C语言中,对于负整数,在内存中是以整数的“补码”形式存放。两个字节存储的最小整数是-32768,在内存中的存储形式:1000000000000000.
无符号整数:用两个字节存放一个整数时,若说明为无符号整数;其中最高位不再用来存放整数的符号,16个二进制位全部用来存放整数,因此无符号整数不可能是负整数,这时,16个二进制位中全部都是1时,它所代表的整数就是最大数65535.
9
实型常量
1.小数形式:即在数学中常用的实数形式,由数字和小数点组成。
单精度和双精度的区别
1)在一般计算机系统中,为float类型的变量分配4个字节的存储单元,为double类型的变量分配8个字节的存储单元。
2)double类型的变量中存放的数据比float类型中村放的数据精确的多。单精度的取值范围是-1038——1038
之间,并提供7位有效位,小于-1038的数被处理成零值。双精度实数的取值范围是-10308——10308之间,并提供15——16位的有效位,小于-10308的数被处理成零值。
3)在程序中一个实数可以用小数形式表示,也可以用指数形式表示,但在内存中,实数一律是以指数形式存放的。
10
4)注意:在计算机内存中可以精确的存放一个整数,不会出现错误,但整型述职的存放范围小;使用实型数的范围大,但往往存在误差。
单精度和双精度的使用的程序 main() {
float a=123.4567; double b=123.4567; clrscr();
printf(\"a=%f,b=%lf\\n\}
11
12
13
算术表达式:
1.定义:用算术运算符和一对园括号将运算量连接起来的,符合C语法的表达式称为算术表达式。
2.运算规则和要求:
1)在算术表达式中,可使用很多层括号,但左右括号必须配对。运算时从内层园括号开始,由内向外,依次计算表达式的值。
2)在算术表达式中,若包含不同优先级的运算符,则按运算的优先级别由高到低进行,若表达式中运算符的级别相同,则按运算符的结合方向进行。
1)运算符需要两个运算对象,称为双目运算符。除求余外,运算对象可以使整型也可以使实型。
14
2)求余运算符的运算对象只能是整型,在“%”运算符左侧的运算数为被除数,运算结果是两数相除后所得的余数。当运算量为负数时,所得结果的符号与被除数相同。例如17%3=2 17%-3=2 -19%3=-1 -15%-7=-1
3)“+”和“—”也可用作单目运算符,运算符必须出现在运算量的左边,运算量可为整型,也可为实型。
4)双目运算符两边的运算类型必须一致才能进行操作,所得结果类型与运算类型一致。如果双目运算符两边运算数的类型不一致,系统将自动把两边转换成相同类型后,进行运算。
5)如果一边是整型数,一边是实型数时,系统讲自动把整型转换成实型数。2)如果一边是长整型,一边是短整型,系统将自动把短整型转换成长整型。3)如果一边是有符号型,另一边是无符号型,系统将自动将有符号型转换为无符号型。4)在C语言中,所有实数的运算均为以双精度方式进行,如是单精度,则在尾数部分补0,使之转换为双精度。
15
16
赋值运算符和赋值表达式
3.赋值表达式
17
18
19
20
例如:i=2;a=i++ a=2;i=3;(a=i; i=i+1;) i=2;a=++i a=3;i=3; (a=i+1; i=i+1; )
逗号运算符和逗号表达式
1)在所有运算符中,逗号运算符的优先级别是最低的
2)逗号运算符的结合性为从左到右。因此逗号表达式将从左到右进行运算。
21
22
23
24