数据类型、运算符与表达式(1).ppt_第1页
数据类型、运算符与表达式(1).ppt_第2页
数据类型、运算符与表达式(1).ppt_第3页
数据类型、运算符与表达式(1).ppt_第4页
数据类型、运算符与表达式(1).ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 数据类型、运算符与表达式,3.1 的数据类型 数据结构是数据的组织形式,语言的数据结构是以数据类型形式出现的。,3.2 常量与变量,一、常量和符号常量 1.常量的定义 常量是程序运行过程中其值不变的数据。 2.常量的类型 整型常量: 21, 0, -12 实型常量: 1.2, -3.4 字符常量: a, Z 字符串常量: “Shen Zhen” 3.符号常量 若程序多处使用某个常量,可将它定义为符号常量。此时可用符号常量来替代该常量。,例符号常量的使用 #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d”,total); 运行结果:total=300,两点注意: 1、符号常量的值不能被改变,也不能被再次赋值。 2、符号常量名一般用大写字母,以便和变量区分开。,使用常量的好处: 1、含义清楚。 2、在需要改变常量时能做到“一改全改”。,常量定义,二、变量和标识符 1.什么是变量 变量是指在程序运行过程中其值可以发生变化的量。 每个变量有一个名字(或叫做标识符),并在内存中占据一定的存储单元。,2.标识符 标识符就是一个名字,它是用来标识变量名、符号常量名、数组名等的有效字符序列。 C语言规定: 标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 几点注意: 1、字符区分大小写 2、不同编译系统规定长度不同 3、变量必须先定义,后使用。,例选出下面合法的变量名。 sum 38abc _0123 P#d Sum Z.Wan month ab,3.变量的定义 一般格式: 类型说明符 变量名,变量名 几点说明: 1、未定义而使用变量系统编译出错 2、指定变量的类型,以便系统为该变量分配相应的存储空间。 每个变量都要占用内存中连续若干个字节,所占用的字节数由变量类型确定。其中第一个字节的地址称为变量的地址。 3、指定变量的类型,便于系统检查变量间运算的合法性。,3.3 整型数据,一、整型常量 整型常量是用来表示数学中整数,包括正整数、0和负整数。 整型常量有三种表示方式: 十进制整数: 21, 0, -111 八进制整数: 021, 00, -0111 十六进制整数:0x21, 0x0, -0x111 整型常量:如,21,234u,011u,0x111 长整型常量:如,0L,-0111L,0x15L,二、整型变量 1.整型变量的分类 基本型:int 短整型:short int/short 长整型:long int/long 无符号型: unsigned int unsigned short unsigned long,C要求:long不短于int; short不长于int,通常的做法:long定为32位;short定为16位;int两者都可以。,取值范围: -32768+32767,取值范围达21亿,取值范围: 065535,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=%dn”,c,d); 运行结果:a+u=22,b+u=-14,3.整型数据的溢出 *不同种类的整型数据可以进行运算。 *运算超出取值范围时,系统不报告错误,而是采用类似钟表一样的循环计数。 例如:int a=32767,b; b=a+1; 结果为-32768,而不是+32768. *为避免溢出,应掌握较小数据类型向较大数据类型赋值的原则。 如,int a=32767; long b; b=a+1L;,注:long的格式输出符为ld Printf(“%ld”,b);,3.4 浮点型数据,一、浮点型常量 浮点型常量又称浮点数,就是通常带小数点的实数。它只使用十进制数,其书写方法有两种: 十进制小数形式 由整数、小数点和小数三部分组成。 例如:12.345, -1.2345, 47.0 指数形式 由尾数、字母e或E和指数三部分组成 例如:12.345e-2, -1.2345E3, 0.1234E4,规范化的指数形式,二、浮点型变量 1.浮点型变量的分类 浮点型变量可分为单精度型(float)和双精度型(double)两种,每个浮点型变量都应在使用前加以定义。 float x,y double z,2.浮点型数据的舍入误差 由于浮点型变量的有效位数有限,在有效位数以外的数字被舍去,可能会产生误差。 例实型数据的舍入误差。 main() float a,b; a=123456.789e5; b=a+20; printf(“%f”,b); 运行结果:12345678848.000000 (12345678920),3.5 字符型数据,一、字符常量 字符常量是用两个单引号括起来的单个字符,如 a、A、1、%等。 特殊形式的字符常量以一个“”开头的字符序列,也叫做转义字符。(P48表3-3) 例转义字符的使用 main() printf(“abctderftgn”); printf(“htibbjk”); ,二、字符变量 字符变量用来存放字符常量。一个字符变量在内存中占一个字节,只能可以存放一个字符。例如 char c1,c2; c1=a; c2=b; 字符存放在字符变量中,实际上是将该字符的ASCII代码放到存储单元中。因此,字符型数据和整型数据之间可以通用。,例向字符变量赋以整数: main() char c1,c2; c1=97;c2=98; printf(“%c %c”,c1,c2); 运行结果:a b 字符变量以字符或整数两种形式输出: printf(“%c %d %c %d”,c1,c1,c2,c2); 运行结果:a 97 b 98,c1=97 等效于 c1=a,c 效果不同于 d,三、字符串常量 字符串常量是一对双引号括起来的字符序列,如:“ab”、“China”、“中国”。 C规定:在每一个字符串的结尾加一个字符串结束标志“0”,以便系统据此判断字符串是否结束。因此每个字符串在内存中占用的字节数=字符串长度+1。,中,国,在C中,没有专门的字符 串型变量,而是采用字符型 数组来实现。,例字符串和字符常量的使用 main() printf(“字符串的输出:”); printf(“%s,%sn”,“Computer”,“计算机”); printf(“字符常量和字符串的输出:”); printf(“%c,%sn”,A,”A”); 运行结果: 字符串的输出:Computer,计算机 字符常量和字符串的输出:A,A,3.6 变量赋初值,程序中常需要对一些变量预先设置初值。C规定,可以在定义变量的同时使变量初始化。 int a=3,b=4; float f=12.345; 也可以使定义的变量的一部分赋初值。 int a,b,c=3; int a=3,b,c=3; 初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋以初值。,3.7 各类数值型数据间的混合运算,整型、字符型、单精度型和双精度型数据之间可以混合运算。例如 10+a+1.5-8765.1234 =-8656.623400 在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换规则是:,表示转换的方向 表示系统内部必做的转换,3.8 算术运算符和算术表达式,一、运算符 运算符是在描述数据处理时用来表示各种运算的符号。例如,在描述数值运算时,经常用到加(+)减(-)乘(*)除(/)等算术运算符。 运算符必须有运算对象。 单目运算符:运算符的运算对象只有一个 双目运算符:运算符的运算对象有两个 三目运算符:运算符的运算对象有三个 C语言的运算符有30多种。,二、基本算术运算符,优先级别规定:单目运算符 优于 双目运算符 *、/、% 优于 +、- (各运算符的优先级与结合性请参看附录C),三、算术表达式 算术表达式的类型是整型、单精度或双精度实型。 例设a=2,c=a,f=3.0 a+2-a*6/f+c%2 =? (a=f)+5 =? 若运算符两侧的数据类型不同,先自动进行类型转换,然后进行运算。也可以使用强制类型转换运算符将一个表达式转换成所需类型 如 (float)a+20 =22.0,1.0,6,四、强制类型转换运算符 可以利用强制转换运算符转换变量或表达式的类型。一般形式: (类型名)变量名或(表达式) 例 main() float x;int i; x=32767.0; i=(int)x%3; print(“x=%f,i=%dn”,x,i); 运行结果:x=32767.0,i=1,注意:强制转 换时,得到一个中 间变量,原来变量 的类型不变。,五、增1减1运算符,增1减1运算符的优先级: 增1减1运算符 优于 双目算术运算符 增1减1运算符 同级 单目算术运算符+,- 单目逻辑运算符!, 例 i+ 相当于 (i+),例设变量i5,求运算结果 j=i+ j=+i j=i- j=-i i+j i-j,运算结果: j=5,i=6 j=6,i=6 j=5,i=4 j=4,i=4 (i+)+j (i-)-j,“+” “-”运算符 需慎用,3.9 赋值运算符和赋值表达式,一、赋值运算符 赋值运算符的作用是将一个数据赋给一个变量。例如:a=3。,二、类型转换 1.实型数据赋值给整型变量,舍弃实数的小 数部分。 如:int i=3.56 (i=3),2.整型数据赋给浮点型变量,数值不变并以浮点数形式存储到变量中。如 f=23 (f=23.000000) 3.字符型数据赋给整型变量时,将字符数据(8位)放到整型变量低8位中。, c=376, c=376,无符号变量,有符号变量,4.将带符号的整型数据赋给长整型变量时,要进行符号扩展。 5.将无符号整型数据赋给长整型变量时,只需将高位补0。,三、复合的赋值运算符 复合的赋值运算符是在赋值符(=)前加上其它运算符。例如 a+=3 a=a+3 x*=y+8 x=x*(y+8) 凡是二目运算符,都可以与赋值运算符一起组合成复合赋值符。C语言规定可以使用10种复合赋值运算符。即 +=,-=,*=,/=,%= =, &=, =, |=,四、赋值表达式 赋值表达式是由赋值运算符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论