第3章数据类型与表达式_第1页
第3章数据类型与表达式_第2页
第3章数据类型与表达式_第3页
第3章数据类型与表达式_第4页
第3章数据类型与表达式_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、1第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式一、一、C C语言的保留字和标识符语言的保留字和标识符二、基本数据类型二、基本数据类型 1 1、常量和变量的概念、常量和变量的概念 2 2、整型、实型、字符型、字符串、整型、实型、字符型、字符串 3 3、变量的初始化、变量的初始化 三、算术运算符和算术表达式三、算术运算符和算术表达式四、自增、自减运算符四、自增、自减运算符五、赋值运算符和赋值表达式五、赋值运算符和赋值表达式六、逗号运算符和逗号表达式六、逗号运算符和逗号表达式2一、一、C C语言的保留字和标识符语言的保留字和标识符保留字保留字:C C语言规定的具有特定意义的字语言

2、规定的具有特定意义的字符串,也称符串,也称关键字关键字。C C语言的保留字(关键字)共有语言的保留字(关键字)共有3232个。个。3标识符标识符:用来标识变量名、符号常量名、:用来标识变量名、符号常量名、数组名、类型名、函数名等的有效字符序数组名、类型名、函数名等的有效字符序列。列。C语言对标识符的规定:语言对标识符的规定:(1 1)只能由)只能由字母字母、数字数字、下划线下划线组成,且第一组成,且第一个字母必须是个字母必须是字母字母或或下划线下划线(2)(2)标识符不能与标识符不能与C C语言的保留字、系统标准库函语言的保留字、系统标准库函数同名。数同名。4标识符中应注意的问题:标识符中应注

3、意的问题:标识符命名时应有意义,尽量做到标识符命名时应有意义,尽量做到见名知义见名知义。 如如lengthlength用来表示长度,用来表示长度,timetime用来表示时间,用来表示时间,PIPI用来表示圆周率。用来表示圆周率。在在C语言中,标识符语言中,标识符大小写敏感大小写敏感。 如如ABCABC、aBCaBC、abcabc分别代表分别代表3 3种不同的标识符种不同的标识符5为合法标识符为合法标识符 yes? 123 go to a_80% if program to_ _to file_2 ab1_c3为非法标识符为非法标识符(含有不合法字符含有不合法字符“?”)(出现非法字符出现非法

4、字符“”)(标识符中不允许有空格标识符中不允许有空格)(第一个字符不能为数字第一个字符不能为数字)(与关键字相同)(与关键字相同)6 整型整型字符型字符型枚举类型枚举类型实型(浮点型)实型(浮点型)单精度型单精度型双精度型双精度型指针类型指针类型空类型空类型基本类型基本类型构造类型构造类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型数据类型数据类型二、基本数据类型二、基本数据类型71、常量和变量的概念、常量和变量的概念常量常量:在程序执行的整个过程中,其值不能改变:在程序执行的整个过程中,其值不能改变 的量。的量。直接以值的形式出现的常量:如直接以值的形式出现的常量:如100100

5、,0.50.5符号常量:用标识符表示的常量符号常量:用标识符表示的常量#define PI 3.14void main() float area,circum,r; r=5; area=PI*r*r; circum=2*PI*r; 。定义符号常量定义符号常量PI,代表代表3.148 变量变量:在程序执行的过程中,其值可以改变的量。:在程序执行的过程中,其值可以改变的量。 如如 y=x+5;其中其中x x和和y y都是变量,都是变量,y y随着随着x x的值不同而不同的值不同而不同注意:注意: 变量实际上是内存中的一个变量实际上是内存中的一个存储单元存储单元,用来存放数据,用来存放数据 9 变量

6、的特征:变量的特征: 1 1)变量名变量名: 一个标识符,通常用一个标识符,通常用小写字母小写字母表示;表示; 2 2)变量类型变量类型:决定存储单元的大小:决定存储单元的大小 整型变量、实型变量、字符型变量等整型变量、实型变量、字符型变量等 3 3)变量值变量值:存储单元中存储的数值。:存储单元中存储的数值。 10注意注意:C语言规定语言规定:变量必须先定义,后使用变量必须先定义,后使用。变量的定义语句:变量的定义语句:类型说明符类型说明符 变量名变量名1 1,变量名变量名2 2,;例:例: int x; 定义整型变量定义整型变量x x int a,b; 定义两个整型变量定义两个整型变量a,

7、ba,b112 2、整型、整型1)整型常量)整型常量十进制整型十进制整型:能出现数字:能出现数字09,可带正负号,可带正负号 如:如:0 0,1111,9595,-2 -2八进制整型八进制整型:以数字:以数字0开头的数字串,能出开头的数字串,能出现数字现数字07 如:如:011011(十进制(十进制9 9),),01250125(十进制(十进制8787)十六进制整型十六进制整型:以:以0 x开头的,能出现数字开头的,能出现数字09,字母,字母af或或AF 如:如:0 x11(0 x11(十进制十进制17)17),0 xa5(0 xa5(十进制十进制165)165)122 2)整型变量)整型变量

8、变量类型名变量类型名变量类型变量类型所占字节数所占字节数数的范围数的范围基本整型基本整型intint4 4短整型短整型short intshort int2 2-32768-327683276732767长整型长整型long intlong int4 4-2147483648-214748364821474836472147483647无符号基本型无符号基本型unsigned intunsigned int4 4无符号短整型无符号短整型unsigned shortintunsigned shortint2 20 06553565535无符号长整型无符号长整型unsigned longintun

9、signed longint4 40 042949672954294967295说明说明: :数据类型所占字节数编译系统的不同而不同数据类型所占字节数编译系统的不同而不同, ,上表以上表以Visual C+6.0Visual C+6.0为例为例-2147483648-2147483648214748364721474836470 04294967295429496729513整型变量举例:整型变量举例:为了保存年龄:为了保存年龄:short age;或或unsigned short age;int age;long age;为了保存一个城市人口:为了保存一个城市人口:int people; 或

10、或long people;unsinged people;unsigned long people;14注意:整型常量也分类型注意:整型常量也分类型 2147483648int 带后缀 l 或L的数:long 如:如:100, 40000是是int型常量型常量 0l,34L,是,是long 型常量型常量 123u, 89U,是,是unsigned型常量型常量21474836470153 3、实型(浮点型)、实型(浮点型)十进制小数十进制小数形式:形式:由数字与小数点组成(必须有由数字与小数点组成(必须有小数点)小数点)。 如如 1.231.23,-123.-123.,0.01230.0123,

11、.0 .0,0. 0. 指数指数形式,如形式,如123e3123e3或或123E3123E3都代表都代表12312310103 3注意字母注意字母e或或E之前必须有数字,后面必须是整数之前必须有数字,后面必须是整数1)实型常量)实型常量 E-5E-5,.1234e1.2.1234e1.2,6.5E6.5E为合法的实型常量为合法的实型常量为非法的实型常量为非法的实型常量如:如:1E-51E-5,.1234e12.1234e12,2.e02.e0,6.5E-156.5E-15162)实型变量)实型变量变量类型名变量类型名变量类型变量类型所占字节数所占字节数数的范围数的范围有效数字有效数字单精度实型

12、单精度实型float4-3.4e-383.4e3867双精度实型双精度实型double8-1.7e-3081.7e308151617实型变量举例:实型变量举例:保存商品的单价,总价:保存商品的单价,总价:float price,total;保存精确的圆周率,精确到小数点后保存精确的圆周率,精确到小数点后10位:位:double pi;18 注意:实型常量也分类型注意:实型常量也分类型 如:如:123.3,是,是double类型类型 34.5f,8.9F,是,是float类型类型194 4、字符型、字符型1 1)字符常量字符常量:是用:是用单撇号单撇号括起来的一个字符。括起来的一个字符。 如如

13、:aa,99, (空格)(空格)是合法字符是合法字符常量常量 ”a”a”,99 99 是非法字符常量是非法字符常量转义字符转义字符: 如:如: 转义字符转义字符nn表示换行,表示换行, 转义字符转义字符tt表示在横向跳到下一个表示在横向跳到下一个Tab Tab 位置位置 转义字符转义字符表示输出一个单引号表示输出一个单引号 转义字符转义字符“表示输出一个双引号等表示输出一个双引号等。20转义字符转义字符 功功 能能 n 回车换行符,光标移到下一行行首回车换行符,光标移到下一行行首 r 回车不换行,光标移动到本行行首回车不换行,光标移动到本行行首 t 横向跳格横向跳格(8位为一格,光标跳到下一格

14、起始位位为一格,光标跳到下一格起始位置,如第置,如第9或或17位等位等) b 退一格,光标往左移动一格退一格,光标往左移动一格 f 走纸换页走纸换页 用于输出反斜杠字符用于输出反斜杠字符“” 用于输出单引号字符用于输出单引号字符“”“” ” 用于输出双引号字符用于输出双引号字符“”“” ddd 1到到3位位八进制数八进制数ddd对应的对应的ASCII码字符码字符 xhh 1到到2位位十六进制十六进制数数hh对应的对应的ASCII码字符码字符 212 2)字符变量字符变量:charchar,占,占1 1个字节空间,只能存放个字节空间,只能存放一个字符。一个字符。存储特点:存储特点: 在字符变量中

15、实际上存储的是字符的在字符变量中实际上存储的是字符的ASCIIASCII码,码,其存储形式与整数的存储形式相同。其存储形式与整数的存储形式相同。字符数据与整型数据可相互赋值,直接运算。字符数据与整型数据可相互赋值,直接运算。例如:例如: char c;char c;c=97;c=97;相当于相当于c=a;c=a;例如例如:char c1char c1,c2c2; c2=ac2=a;定义了字符型变量定义了字符型变量c1,c2,把,把aa存放到存放到c2中中22 字符常量与字符串常量不同字符常量与字符串常量不同5 5、字符串常量、字符串常量 定义:用双引号定义:用双引号(“”)(“”)括起来的字符

16、序列。括起来的字符序列。 如:如:“hello” “Mary” “aaan”hello” “Mary” “aaan” 存储:每个字符串尾存储:每个字符串尾自动自动加一个加一个 00 作为字作为字符串结束标志符串结束标志h e l l o 0例例 字符串字符串“hello”“hello”在内存在内存中中a a 0例例 a a“a”例例 空串空串 “” “”0例: char ch; ch=“A”; 例: char ch; ch=A; 23练习练习: printf(“”Youre my good friend!”n”);在显示器上输出什么在显示器上输出什么?“Youre my good friend

17、!” 245 5、变量的初始化、变量的初始化格式格式:类型说明符类型说明符 变量变量1=1=常数常数1 1,变量变量2=2=常数常数2 2,; 例例:int a=2;float data=3.67; char ch=A;int x=1,y=1,z=1;int m=10,n;int x=y=z=1;(语法错误)(语法错误)变量的初始化是指在定义变量时给变量赋值,这个变量的初始化是指在定义变量时给变量赋值,这个值称为变量的初值。值称为变量的初值。25三、算术运算符和算术表达式三、算术运算符和算术表达式1、算术运算符、算术运算符:算术运算符用于各类数值运算。:算术运算符用于各类数值运算。基本的算术运

18、算符:基本的算术运算符: (求负值)(求负值)、只需要一个运只需要一个运算对象,算对象,单目单目运算符运算符需要两个运需要两个运算对象,算对象,双目运算符双目运算符26除法运算符除法运算符“/”进行求商运算。对于不同类型的进行求商运算。对于不同类型的运算对象,除法表达式计算结果的类型也会不同。运算对象,除法表达式计算结果的类型也会不同。例:例:计算计算x/y如果如果x,y是是整型整型,则结果为,则结果为整型整型,小数部分,小数部分被略去。被略去。 5/2结果为结果为2,整型量,整型量 2/5结果为结果为0,整型量,整型量如果如果x,y其中一个为实型量,则结果为实型其中一个为实型量,则结果为实型

19、5.0/2.0结果为结果为2.5,27“”是求余运算。是求余运算。ab计算计算a除以除以b后的余数,也后的余数,也是是a模模b的值。它要求两个运算对象的值。它要求两个运算对象必须必须是是整型整型,其,其结果也是整型量。结果也是整型量。例:例:52结果为结果为1 25结果为结果为2 10%3.0 语法错误语法错误282.2.算术表达式算术表达式 用用算术运算符算术运算符和和括号括号将运算对象(操作将运算对象(操作数)连接起来的、符合数)连接起来的、符合C C语法规则的式子。语法规则的式子。如:如:1+3.51+3.5* *2-10 (x+y)2-10 (x+y)* *3-6+a3-6+a 表达式

20、的值表达式的值表达式的运算结果表达式的运算结果29一般数学式一般数学式a(b+c)+dac22rxyyxx1算术表达式算术表达式(a*(b+c)+d)*a*c 将方括号改成圆将方括号改成圆括号,括号,* *不能省略不能省略x/(x+y)+1.0/(x*y) 其中不能出现分其中不能出现分数,改用除法运算符,圆括号不能缺少数,改用除法运算符,圆括号不能缺少3.14159*r*r/2.0 其中其中 为非字母字为非字母字符,要用实型常量代替符,要用实型常量代替例:将数学公式改为算术表达式例:将数学公式改为算术表达式303、算术运算符的优先级和结合性算术运算符的优先级和结合性 优先级:优先级:高高 -

21、- - -* * / % / % - + - - + - 低低 (2) (3) (4)(2) (3) (4)注意注意:可以用可以用( )来改变运算的顺序来改变运算的顺序. 如如 (3+5)*8/(4.0-2) 结合性:结合性:当一个操作数两边的运算符具有相同的优先级时,当一个操作数两边的运算符具有相同的优先级时,该操作数先跟哪个运算符结合进行运算。该操作数先跟哪个运算符结合进行运算。左结合性:先跟左边的运算符结合,自左向右运算左结合性:先跟左边的运算符结合,自左向右运算右结合性:先跟右边的运算符结合,自右向左运算右结合性:先跟右边的运算符结合,自右向左运算+ - *为左结合性为左结合性- (求

22、负值运算)为右结合性(求负值运算)为右结合性 314 4、算术表达式中数据类型的转换、算术表达式中数据类型的转换当表达式中的数据类型不同时,要进行类型转换。当表达式中的数据类型不同时,要进行类型转换。转换方式转换方式 自动(隐式)转换自动(隐式)转换:系统自动把数据由低级类系统自动把数据由低级类型向高级转换。型向高级转换。 强制转换强制转换:将表达式的运算结果强制转换成指:将表达式的运算结果强制转换成指定的数据类型。定的数据类型。如下表达式是合法的:如下表达式是合法的: 13.14159+0+A32floatdoublelongunsignedintCharshort低低高高自动转换规则:自动

23、转换规则:横向必做横向必做纵向选做纵向选做33例例:数据类型自动转换实例:数据类型自动转换实例有如下变量有如下变量类型:类型:char c;int i;float f;double d;计算表达式:计算表达式:c+f+i+dchar float int doublec + f + i + d int double double double该表达式值的类型是该表达式值的类型是doubledouble类型类型 doubledoubledouble34强制类型转换运算符:强制类型转换运算符:(类型名)(类型名)格式:格式:(目标类型名)(表达式)(目标类型名)(表达式)注意注意: : 1 1)强制

24、转换属单目运算,运算优先级为)强制转换属单目运算,运算优先级为2 2。 2 2)强制转换得到的是中间变量类型,原变量类型不变。)强制转换得到的是中间变量类型,原变量类型不变。如:如:int n; float x; x = (float)n; 强制转换后强制转换后n n的类型仍然是的类型仍然是int类型类型例例:int x=2, y=3; float z=1.1f; (float)(x+y); (将(将x+y的值转换为的值转换为float类型)类型) (int)z + x;(先将(先将z转换为整型,再与转换为整型,再与x相加)相加)35四、四、赋值运算符和赋值表达式赋值运算符和赋值表达式1 1、

25、简单、简单赋值运算符赋值运算符运算符运算符:= = 表达式格式表达式格式:变量表达式变量表达式优先级优先级:1414,低于算术运算符,低于算术运算符 运算规则运算规则:把:把=右边表达式的值赋给左边变量右边表达式的值赋给左边变量结合性结合性:右结合:右结合v说明说明:赋值运算符左边必须是赋值运算符左边必须是变量变量而不能是表达式;而不能是表达式;赋值表达式的值赋值表达式的值是赋值号左边变量被赋值后的值;是赋值号左边变量被赋值后的值;例例:j+3=j a*b=c*4例例:x=5 表达式的值为表达式的值为5 36如果赋值号两边的类型不一致,则将赋值号如果赋值号两边的类型不一致,则将赋值号右边右边表

26、达式的值的类型转换成赋值号表达式的值的类型转换成赋值号左边左边变量的类型;变量的类型;赋值语句可以连续进行。赋值语句可以连续进行。例例:a=b=c=0,根据右结合性,该表达式等价于:根据右结合性,该表达式等价于:a=(b=(c=0)例 int i; i=2.56; /结果i=2;例 float f; int i; i=10; f=i;则 f=10.00000372 2、复合赋值运算、复合赋值运算算术运算符算术运算符“+ + * * / %” / %”和赋值运算符和赋值运算符“=”=”结合起来,形成复合赋值运算符。结合起来,形成复合赋值运算符。+= :加赋值运算符:加赋值运算符; 如如a+=3,

27、等价于,等价于 a=a+3-= :减赋值运算符:减赋值运算符; 如如a-= b+ 3,等价于,等价于 a=a- (b+3) *=、/=、%= 与此类似与此类似38注意注意:复合运算符在书写时,两个运算符之间不能复合运算符在书写时,两个运算符之间不能有空格。有空格。复合赋值运算符的结合性和优先级等同于简复合赋值运算符的结合性和优先级等同于简单的赋值运算符单的赋值运算符“=”=”。复合运算符左边必须是变量;复合运算符左边必须是变量;复合运算符右边的表达式计算完成后才参与复合运算符右边的表达式计算完成后才参与复合赋值运算;复合赋值运算; 39五、自增、自减运算符五、自增、自减运算符类别类别: 单目运算,单目运算,运算优先级为运算优先级为2运算符:运算符: + 使变量的值增使变量的值增 1 - 使变量的值减使变量的值减 1运算规则运算规则: 后缀后缀 i i 前缀前缀 i i先使用先使用i的值,再使的值,再使i的值加的值加(减减)1先先使使i的值加的值加(减减)1 ,再使用,再使用i的值的值结合性结合性:右结合右结合40例

温馨提示

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

评论

0/150

提交评论