第3章 基本数据类型、运算符和表达式

上传人:飞*** 文档编号:3924634 上传时间:2017-08-05 格式:PPT 页数:59 大小:863KB
返回 下载 相关 举报
第3章 基本数据类型、运算符和表达式_第1页
第1页 / 共59页
第3章 基本数据类型、运算符和表达式_第2页
第2页 / 共59页
第3章 基本数据类型、运算符和表达式_第3页
第3页 / 共59页
第3章 基本数据类型、运算符和表达式_第4页
第4页 / 共59页
第3章 基本数据类型、运算符和表达式_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《第3章 基本数据类型、运算符和表达式》由会员分享,可在线阅读,更多相关《第3章 基本数据类型、运算符和表达式(59页珍藏版)》请在金锄头文库上搜索。

1、第三章 基本数据类型、运 算符和表达式,类型,基本类型,构造类型,指针类型,空类型,整型,实型,枚举型,字符型,数组类型,结构体类型,共用体类型,双精度,单精度,基本类型:构造简单,已由系统定义好。构造类型:又称复杂数据类型,由其它数据类型按一定规则构造而成。指针类型:用于存放地址(指针),用来解决动态数据的建立、删除和使用。空类型:用于数据类型的转换。,本章介绍除枚举类型之外的基本数据类型。,3.1 常量3.2 变量3.3 数据类型的转换3.4 算术运算符3.5 赋值运算3.6 关系运算3.7 逻辑运算3.8 位运算3.9 其它运算3.10 本章程序举例3.11 本章要点小结,3.1 常量,

2、3.1.1 整型常量3.1.2 实型常量3.1.3 字符常量3.1.4 字符串常量3.1.5 符号常量,3.1.1 整型常量,C语言允许使用十进制、八进制和十六进制整数常量。规定以0开头的数为八进制数,以0x开头的为十六进制数。如:235,0235,0x235。八进制和十六进制只能表示正数。在微机中,通常一个整数由16位二进制数来表示,因此其十进制数的表示范围为-32768+32767;长整型采用双倍字长来表示一个数,因此长整型的表示范围为-2147483648+2147483647。在一个整数后加一个字母 l 或L表示长整型数。如:-135L。整型数通常以补码的形式存储在内存中,最高位为符号

3、位,C语言也允许使用无符号数,这样数的表示范围为065535。,3.1.2 实型常量,实型常量即实数,又称浮点数,C语言实数只能使用十进制表示。实数有两种表示方法:小数形式和指数形式。小数形式:由数字和小数点组成,小数点前后的0可省略,但必须有小数点。如:0.135,.135,135.0,135.,0.0 。指数形式:由尾数、字母e或E及指数部分组成。如: 2e+5 ,-0.25e-2,1.41E-4。注意:e或E的前后都要有数字,且指数(阶码)必须为整数,如:2.3E-3.2,1.E,.e-4都是错误的表示形式。浮点数一般分为单精度和双精度两种,单精度用32位表示,其数值范围为10-38 1

4、038,有效数字位数为十进制数的67位;双精度用64位表示,其数值范围为10-30810308,有效数字位数为十进制数的1516位。,3.1.3 字符常量,字符常量用一对单引号扩起来的单个字符表示,如:A,?, a。单引号仅做定界符使用,本身不算字符常量。某些特殊字符 , ,“ ,不能由单引号扩起来作为字符常量,规定用、“分别表示字符常量 ,“ ,它们是转义字符,是字符常量的一种特殊形式。字符常量本身具有数值,就是它们的ASCII码值,如:A的值是65, a的值是97。C语言中字符常量和整数常量可以混合使用,如:int i;char ch;i=A+2;ch=a-32;则 i 值为67,ch值为

5、A。,字符常量,有些计算机中除使用ASCII码为0127的字符外,还扩充使用128255的字符,如:字符“”其 ASCII码值为242,二进制为11110010,这些字符需要用8位二进制数表示,因为最高位通常处理为符号位,所以需将变量定义成无符号字符变量:unsighned char c;,表3.1 基本数据类型归纳,3.1.4 字符串常量,字符串常量是用一对双引号扩起来的若干字符序列。如:“hello”, “ A”。双引号仅做定界符使用,本身不算入字符串常量。字符常量和字符串常量是有区别的,每个字符串结尾处由系统自动加上一个字符串结束标志“0”其ASCII码值为0,是一个“空操作”字符,不可

6、显。因此“a”和a是不一样的,如:char ch;ch=a是正确的,而ch=“a”则是错误的。它们在内存中的表示形式见图3.1。,a ,“a” ,(97)10,(97)10,(0)10,图 3.1,由图可见,a在内存中占1个字节,而“a”在内存中占2个字节。,3.1.5 符号常量,将在程序中多次出现的常量定义为一个标识符,即是符号常量。符号常量一般用大写英文字母表示,在使用之前必须在程序开头事先定义,定义形式为:# define 符号常量名 常量表达式或字符串如:# define PI 3.1415926 # define LETTER “xyz”符号常量定义之后,下面程序中就可以使用它,如P

7、I系统就认为它的值为3.1415926。符号常量提高程序的可读性及常量修改的一致性。,3.2 变量,3.2.1 变量名与标识符3.2.2 变量的数据类型和变量的地址3.2.3 变量的定义和初始化,3.2.1 变量名与标识符,变量:以标识符来取名,在程序中其值可变的量。标识符:是变量名、符号常量名、函数名、数组名、结构体名、共用体名的总称。,命名规定:(1)标识符是以字母或下划线开头,由字母、数字、下划线组成的字符序列。如:sum、file、_size、data38;以下标识符是错误的:stu-num、3D64、$123、M.D.JOHN.、abc DEF。,(2)C语言中有32个关键字,系统已

8、定义好其含义,不允许用户再次定义;另外还有12个预处理命令,用户最好不要再用它们做其它标识符,详见P37页。(3)不同C版本对标识符的长度要求不同,一般要求不超过32个字符。(4)C语言中,系统认为大、小写字母是不同的字符,如:ABC、abc是不同的标识符。,定义标识符,应遵循以下原则:(1)尽量做到见名知义,以增加程序的可读性。(2)符号常量一般用大写字母,其它标识符如变量名、函数名用小写字母或大小写字母混合使用。,3.2.2 变量的数据类型和变量的地址,C语言中有整型变量、字符型变量和实型变量,没有字符串变量,一个字符串只能存放到一个字符数组中或一个字符指针所指的内存区。编译程序根据变量类

9、型分配内存单元,执行程序时,通过赋值语句将变量值送到其内存单元。因此某种类型的变量名既代表了该变量的存储空间,又代表了该存储空间所存的数值。见下例:,main() char ch; int a;float x; ch=A;a=12;x=35.76; ,&ch=6321&a=6358 6359&x=6401 6402 6403 6404,编译程序时,由于ch定义为char型的,所以分配一个字节单元(假设为6321号地址单元),a是int型的,分配两个连续的字节单元,x是float型的,分配四个连续的字节单元;执行程序时,三个赋值语句将A的ASCII码值65送到6321单元,将12以二进制补码形式

10、送到6358、6359两个单元,将35.76以阶码和尾数的浮点数表示形式送到64016404四个单元。,3.2.3 变量的定义和初始化,任何变量必须先定义再使用,因为:只有定义了变量,编译程序才能根据变量的类型分配适当的内存单元。决定其存储数据的方法。允许该数据所执行的操作方式。,定义变量的形式为: 数据类型 变量名表; 如:int a,b,c,sum;定义变量的同时,可以对该变量赋初值,也称变量的初始化。 如:int i1=3,i2=5;char ch1=a,ch2=A;float f1,f2=3.5;注意:需单独赋值,如下错误:int i1=i2=5;注意:变量的初始化不是在编译时完成的,

11、而是在执行程序时对相应的变量赋初值,相当于赋值语句。执行程序时任何变量在使用之前一定要有明确的值,否则会出现错误,如:int i,j;j=i+3;是错误的,应改为: int i,j;i=5;j=i+3;,3.3 数据类型的转换,3.3.1 自动类型转换3.3.2 强制类型转换,3.3.1 自动类型转换,C语言允许不同数据类型之间进行运算,运算中系统将自动进行类型转换,转换规则如下:charintlongfloatdouble如:1.5+2*a-1.2345678的运算次序为:2*a,先将a转换成整型数97,得乘积194;1.5+194,此时1.5和194都转换成double型(实数参与运算都要

12、转换成double型),和为195.5;将195.5-1.2345678,1.2345678本身应是double型的,所以最后结果也为double型。,3.3.2 强制类型转换,C语言允许使用强制类型转换运算符将一个表达式的值转换成所需要的数据类型,转换形式如下:(数据类型)(表达式)例如:(int) (x+y)当表达式为单个变量时可省略其括号,如:(double) a说明:通过强制类型转换,只得到了一个所需类型的中间变量,原变量或表达式的值和类型并没有变化。如:int a;float x; x=8.57;a=(int)x; 结果a=8,x仍为float型,其值仍为8.57。,3.4 算术运算

13、符,3.4.1 基本的算术运算符3.4.2 算术表达式及运算符的优先级与结合性3.4.3 自增、自减运算符3.4.4 取负运算,3.4.1 基本的算术运算符,基本的算术运算符有+、-、*、/、%五个。其中“/”除法运算时,二数皆为整数时其商也为整数,如:7/2=3,-5/3=-1。二数为实数时其商也为实数,如:7.0/2=3.5“%”为取余运算符,规定两个参加取余运算的数必须是整数,如:2%3=2,6%2=0,-7%2=-1。,3.4.2 算术表达式及运算符的优先级与结合性,所谓表达式是将操作对象(常数、变量、函数等),用运算符连接起来的符合C语法规则的式子。用算术运算符将操作对象连接起来的符合语法规则的式子称为算术表达式。如: 2+5*9/3-6+4运算符有优先级,如:先乘除,后加减;同级运算符,按自左向右的顺序运算,即左结合性。,3.4.3 自增、自减运算符,“+ +”和“- -”是自增、自减运算符,它使一个变量的值加1或减1。如:+ +i,- -i /*先使 i 的值加、减1,再使用变量i */ i+ +,i- - /*先使用i的值,再使i的值加、减1*/,如下两程序片断: int i=10; int i=10; x=i+ +; x=+ +i; y=i; y=i;程序运行结果:,注意:自增、自减运算只能用于变量,不能用于常量或表达式。该运算符的结合性为“自右至左”。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号