第2章数据类型、运算符与表达式 21c的数据类型 2.2常量与变量 23整形数据 24实型数据 2.5字符型数据 26变量赋初值 2.7各类数值型数据间的混合运算 28算术运算符与算术表达式 29赋值运算符和赋值表达式 210逗号运算符和逗号表达式
第2章 数据类型、运算符与表达式 2.1 C的数据类型 2.2 常量与变量 2.3 整形数据 2.4 实型数据 2.5 字符型数据 2.7 各类数值型数据间的混合运算 2.6 变量赋初值 2.8 算术运算符与算术表达式 2.9 赋值运算符和赋值表达式 2.10 逗号运算符和逗号表达式
第2章数据类型、运算符与表达式 21c的数据类型 1.一个C程序包括的内容 程序=算法+数据结构+程序设计方法+语言工具和环境 2.c的数据类型 字符型(char) 整型( short,nt,ong, unsigned) 基本类型数值类型 实型单精度型oa 枚举类型enum) 双精度型( double) 数据类型 数组类型[]) 构造类型结构体类型(truc 共用体类型unon) 指针类型(+) 空类型void)
第2章 数据类型、运算符与表达式 2.1 C的数据类型 1.一个C程序包括的内容 程序=算法+数据结构+程序设计方法+语言工具和环境 2.C的数据类型 数据类型 基本类型 构造类型 指针类型() 空类型(void) 字符型(char) 数值类型 枚举类型(enum) 数组类型([ ]) 结构体类型(struct) 共用体类型(union) 整型(short,int,long,unsigbed) 实型 单精度型(float) 双精度型(double)
22常量与变量 1.常量和符号常量 在程序运行过程中其值不能被改变的量称为常量。 例21定义符号常量。 idefine Price 30 main( i int num, total; num=10 total=num* PRICE, printf(total%d,total a); 用 define命令定义PRCE代表常量30,则在整个程序 中出现的PRCE都代表30,可以和常量一样进行运算
2.2 常量与变量 1.常量和符号常量 在程序运行过程中其值不能被改变的量称为常量。 例2.1 定义符号常量。 #define PRICE 30 main( ) { int num,total; num=10; total=numPRICE; printf(“total=%d”,total); } 用define命令定义PRICE代表常量30,则在整个程序 中出现的PRICE都代表30,可以和常量一样进行运算
2.变量 在程序运行过程中其值可以被改变的量称为变量。 变量名由字母、数字和下划线三种字符组成,由字母 开头,且只识别前8个字符。 如:sum,aver, class,day均为合法变量名;$123, #33,3ds均为非法变量名;而 filename、 filename1以及 filename2表示同一个变量名。 ①sum、Sum与SUM是三个不同的变量名。 ②在C中,习惯用大写字母标识符号常量,用小写字 母标识变量。 ③变量必须先定义后使用。 ④变量一经定义,就确定了类型
2.变量 在程序运行过程中其值可以被改变的量称为变量。 变量名由字母、数字和下划线三种字符组成,由字母 开头,且只识别前8个字符。 如:sum, aver, class, day均为合法变量名;$123, #33, 3ds均为非法变量名;而filename、filename1以及 filename2 表示同一个变量名。 sum、Sum与SUM是三个不同的变量名。 在C中,习惯用大写字母标识符号常量,用小写字 母标识变量。 变量必须先定义后使用。 变量一经定义,就确定了类型
23整型数据 1.整型常量 整型常量即整常数。整常数有三种表示形式: ①十进制数如:123,-456 ②八进制数以0开头。如:0123,-011 ③十六进制数以0x开头。如:0x123,-0x12 2.整型常量的类型 ①其值在32768~+32767时为int型 ②其值在2147483648~+214748647时为 long int型。 ③常量中无 unsigned型。但非负值的整型量可以赋值给 unsigned型整变量,只要不产生溢出 ④在整型常量后面跟一个字母I或L,则认为是| ng int 型常量
2.3 整型数据 1.整型常量 整型常量即整常数。整常数有三种表示形式: 十进制数 如:123, - 456 八进制数 以0开头。如:0123, - 011 十六进制数 以0x开头。如:0x123, - 0x12 2.整型常量的类型 其值在-32768~+32767时为int型。 其值在-2147483648~+214748647时为long int型。 常量中无unsigned型。但非负值的整型量可以赋值给 unsigned型整变量,只要不产生溢出。 在整型常量后面跟一个字母 l 或 L,则认为是long int 型常量
3.整型变量 1)整型变量的分类 ①基本型以in表示。32768~32767(-215-215-1) ②短整型以 short int或shor表示,取值范围同int型。 ③长整型以 long int或lng表示。 -2147483648-2147483647(-231-231-1 ④无符号型用全部二进制位(bi)存放数据,不能存放负数 unsigned int unsigned short: 0-65535(0-216-1) unsigned long:0-4294967295(0~232-1) 2)整型变量的定义 int a, b: unsigned short C, d; longe, f;
3.整型变量 1) 整型变量的分类 基本型 以int表示。-32768~32767 (-2 15~215 -1) 短整型 以short int或short表示,取值范围同int型。 长整型 以long int或long表示。 -2147483648~2147483647 (-2 31~231-1 ) 无符号型 用全部二进制位(bit)存放数据, 不能存放负数。 unsigned int与unsigned short: 0~65535(0~216-1) unsigned long :0~4294967295 (0~232 -1) 2) 整型变量的定义 int a,b; unsigned short c,d; long e,f ;
24实型数据 1.实型常量 ①十进制数形式:0.123、123、123、123.0、 ②指数形式:12303或123E3都代表123X1…… 2.实型变量 单精度foat:占用4 Bytes,7位有效数字,10-38~1038 双精度 double:占用8 Bytes,15/16位有效数字, 10-308~10308 如: float x,y;|只能接收7位有效数字* double z
2.4 实型数据 1.实型常量 十进制数形式:0.123、.123、123、123.0、… 。 指数形式: 123e3或123E3都代表123 103 。 2.实型变量 单精度float:占用4 Bytes, 7位有效数字,10–38 ~1038 。 双精度double :占用8 Bytes, 15/16位有效数字, 10–308~10308 。 如:float x,y; / 只能接收7位有效数字 / double z;
25字符型数据 1.字符常量 字符常量是用单引号括起的1个字符。如:‘a'、A 以“V开头的字符序列在 printf函数中控制输出格式。 换行 横向跳格(下一个输出区) tMbrfW 竖向跳格 退格 回车 走纸换页 反斜杠字符 单引号 ddd1到3位8进制数所代表的字符。如:“101=A kkhh1到2位16进制数所代表的字符
2.5 字符型数据 1.字符常量 字符常量是用单引号括起的1个字符。如:‘a’、‘A’、…。 以“ \”开头的字符序列在printf 函数中控制输出格式。 \xhh 1到2位16进制数所代表的字符 \ddd 1到3位8进制数所代表的字符。如:‘\101’=‘A’ \’ 单引号 ’ \\ 反斜杠字符 \ \f 走纸换页 \r 回车 \b 退格 \v 竖向跳格 \t 横向跳格(下一个输出区) \n 换行
例22输出格式控制 main( 表示空格符 printf(“ HabacltodeIrf ItgIn”); printf("htiblbjoook") 在打印机上输出: 在屏幕上输出: f囗abc囗gde f囗gde hoooooDi i DOk hoodoo joOk 2.字符变量 字符变量只能存放1个字符 char c1c2 c1=a’;c2=b3;
例2.2 输出格式控制 在打印机上输出: f a bc gde h j i k 在屏幕上输出: f gde h jk 2.字符变量 字符变量只能存放 1 个字符 main( ) { printf(“abc\tde\rf \tg\n”); printf(“h\ti\b\bjk”); } char c1,c2; c1=‘a’; c2=‘b’; 表示空格符
3.字符数据在内存中的存储形式及使用方法 例23 main() c=c1-32:c2=c2-32 I char c1, C2; printf("%c %cIn",c1, c2) c1=a’;c2=b’; printf(%/oC%cn,c1c2)|输出结果: c1=c1-32:c2=c2-32: a b printf(%c %CIn", C1, C2); AB c1=97;c2=98; a b printf("%c%cln",C1, C2);A B 在C中,字符型数据与整型数据可以相互赋值和运算
3.字符数据在内存中的存储形式及使用方法 在C中,字符型数据与整型数据可以相互赋值和运算。 例2.3 main( ) { char c1, c2; c1=‘a’; c2=‘b’; printf(“%c %c\n”, c1,c2); c1=c1–32; c2= c2–32; printf(“%c %c\n”, c1,c2); c1=97; c2=98; printf(“%c %c\n”, c1,c2); c1=c1–32; c2=c2–32; printf(“%c %c\n”,c1,c2); } 输出结果: a b A B a b A B