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

下载本文档

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

文档简介

1、计算机程序语言(计算机程序语言(C C)【教学主要内容教学主要内容】n数据类型数据类型nC+C+运算符运算符n运算符和表达式运算符和表达式要求要求n理解:理解:C+C+数据类型数据类型n掌握:掌握:C+C+运算符与表达式运算符与表达式 3.1 3.1 数据数据.2 C+.2 C+运算运算符符3.3 3.3 运算符与表达式运算符与表达式 (1 1)数据类型数据类型(2 2)常量和变量常量和变量(3 3)整型数据整型数据(4 4)字符型数据字符型数据(5 5)浮点型数据浮点型数据n所谓所谓类型类型,就是对数据分配存储单元的安,就是对数据分配存储单元的安排,包括存储单元的长度排,包括存储单元的长度(

2、 (占多少字节占多少字节) )以以及数据的存储形式及数据的存储形式n不同的类型分配不同的长度和存储形式不同的类型分配不同的长度和存储形式数据类型数据类型基本类型基本类型整型整型 短整型短整型( (short int)short int) 整型整型( (int) int) 长整型长整型( (long int)long int)字符型字符型( (char)char)浮点型浮点型 单精度型单精度型( (float)float)双精度型双精度型( (double)double) 长双精度型长双精度型( (long double)long double) 布尔型布尔型( (bool)bool) 空类型空

3、类型( (void)void) 构造类型构造类型 枚举类型枚举类型( (enum)enum)数组类型数组类型 结构体类型结构体类型( (struct)struct) 共用体类型共用体类型( (union)union)指针类型指针类型 a. a.常量常量:在程序运行过程中,其值在程序运行过程中,其值不能被改变的量不能被改变的量n整型常量整型常量:如如10001000,1234512345,0 0,-345-345n实型常量实型常量n十进制小数形式十进制小数形式:如如0 0. .34 -5634 -56. .79 079 0. .0 0n指数形式指数形式:如如12.3412.34e e3 (3 (

4、代表代表12.3412.34 10103 3) )n字符常量字符常量:如:如? ?n转义字符转义字符:如:如nnn字符串常量字符串常量:如如”boyboy”n符号常量符号常量:#define #define PIPI 3.1416 3.1416 b b. .变量变量:在程序运行期间,变量的值是可以改变的在程序运行期间,变量的值是可以改变的n变量必须变量必须先定义先定义,后使用后使用n定义定义变量变量时指定该变量的时指定该变量的名字名字和和类型类型n变量名变量名和和变量值变量值是是两个不同的概念两个不同的概念n变量名实际上是以一个名字代表的一个变量名实际上是以一个名字代表的一个存储地址存储地址n

5、从变量中取值,实际上是通过变量名找到相应的内从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据存地址,从该存储单元中读取数据 c c. .常变量常变量:const int a=3;const int a=3; d. d.标识符标识符:一个对象的名字一个对象的名字n语言规定标识符只能由语言规定标识符只能由字母字母、数字数字和和下划线下划线3 3种种字符组成,且字符组成,且第一个字符必须为字母或下划线第一个字符必须为字母或下划线n合法的标识符:合法的标识符:如如sumsum,average, _total, Class, average, _total, Class, da

6、y, BASIC, li_lingday, BASIC, li_lingn不合法的标识符不合法的标识符:M.D.JohnM.D.John,¥,¥123123,3333,3D643D64,a ab b大小写字母是不同的字符大小写字母是不同的字符 a. a.整型数据的分类整型数据的分类n最基本的整型类型最基本的整型类型n基本整型基本整型(int(int型型) ):占:占2 2个或个或4 4个字节个字节n短整型短整型(short int)(short int):VC+6.0VC+6.0中占中占2 2个字节个字节n长整型长整型(long int)(long int):VC+6.0VC+6.0中占中占4

7、 4个字节个字节n双长整型双长整型(long long int)(long long int):C99C99新增的新增的b.b.整型变量的符号属性整型变量的符号属性n整型变量的值的范围包括负数到正数整型变量的值的范围包括负数到正数n可以将变量定义为可以将变量定义为“无符号无符号”类型类型扩充的整型类型:扩充的整型类型:n有符号基本整型有符号基本整型 signed int; signed int;n无符号基本整型无符号基本整型 unsigned int; unsigned int;n有符号短整型有符号短整型 signed short int; signed short int;n无符号短整型无符

8、号短整型 unsigned short int; unsigned short int;n有符号长整型有符号长整型 signed long int; signed long int;n无符号长整型无符号长整型 unsigned long int unsigned long intn有符号双长整型有符号双长整型 signed long long int; signed long long int; n无符号双长整型无符号双长整型 unsigned long long int unsigned long long int a.a.字符与字符代码字符与字符代码大多数系统采用大多数系统采用ASCIIA

9、SCII字符集字符集n字母:字母:A-Z(65-90)A-Z(65-90),a-z(97-122)a-z(97-122)n数字:数字:0 09(489(485 57)7)n专门符号:专门符号:2929个:个:! ! ” # & # & ( ) ( ) * *等等n空格符:空格、水平制表符、换行空格符:空格、水平制表符、换行等等n不能显示的字符:不能显示的字符:空空(null)(null)字符字符( (以以00表示表示) )、警告警告( (以以aa表示表示) )、退格、退格( (以以bb表示表示) )、回车回车( (以以rr表示表示) )等等n字符字符1 1和整数和整数1 1是不同的概念是不同的

10、概念:n字符字符1 1只是代表一个形状为只是代表一个形状为1 1的符号,在需的符号,在需要时按原样输出,在内存中以要时按原样输出,在内存中以ASCIIASCII码形式码形式存储,占存储,占1 1个字节个字节n整数整数1 1是以整数存储方式是以整数存储方式( (二进制补码方式二进制补码方式) )存储的,占存储的,占2 2个或个或4 4个字节个字节0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1b.b.字符变量字符变量例例1.1.将字符赋给整型变量。将字符赋给整型变量。 # #include include using namespace std; u

11、sing namespace std; int main( ) int main( ) int i; /i int i; /i是整型变量是整型变量 i= i=A A; /; /将字符常量赋给整型变量将字符常量赋给整型变量i i couti coutin; /n; /输出整型变量输出整型变量i i值,值,n n 是换行符是换行符 return 0; return 0; n执行时输出执行时输出6565浮点型数据是用来表示具有小数点的实数浮点型数据是用来表示具有小数点的实数其一般形式为:其一般形式为:数符数符 数字部分数字部分 指数部分指数部分 + .314159 + .314159 3 3nflo

12、atfloat型型( (单精度浮点型单精度浮点型) )u编译系统为编译系统为floatfloat型变量分配型变量分配4 4个字节个字节ndoubledouble型型( (双精度浮点型双精度浮点型) )u编译系统为编译系统为doubledouble型变量分配型变量分配8 8个字节个字节nlong double(long double(长双精度长双精度) )型型u编译系统为编译系统为doubledouble型变量分配型变量分配8 8个或个或1616个字节个字节(1) (1) 算术运算符算术运算符 +( +(加加)-()-(减减) ) * *( (乘乘) /() /(除除) %() %(整除整除求余

13、求余)+()+(自加自加) -() -(自减自减) )(2) (2) 关系运算符关系运算符( (大于大于) )( (小于小于) ) ( (等于等于) )( (大大于或等于于或等于) )( (小于或等于小于或等于) )!( (不等不等于于) )( () ) 逻辑运算符逻辑运算符 ( (逻辑与逻辑与) |() |(逻辑或逻辑或) ) !( (逻辑非逻辑非) )( () ) 位运算符位运算符 () (按位右移按位右移) ) ( (按位与按位与) |() |(按位按位或或) () (按位异或按位异或) ) ( (按位取反按位取反) )( () ) 赋值运算符赋值运算符 ( (及其扩展赋值运算符及其扩展

14、赋值运算符) )( () ) 条件运算符条件运算符 (?:) (?:)( () ) 逗号运算符逗号运算符 ( (,) )( () ) 指针运算符指针运算符 ( (* *) )(9 9)引用运算符和地址运算符)引用运算符和地址运算符 ( () )(10) (10) 求字节数运算符(求字节数运算符(sizeofsizeof)(11) (11) 强制类型转换运算符(强制类型转换运算符( ( (类型类型) ) 或类型或类型( )( ))(1 1)算术运算符与算术表达式)算术运算符与算术表达式(2 2)赋值运算符与赋值表达式)赋值运算符与赋值表达式(3 3)逗号运算符与逗号表达式)逗号运算符与逗号表达式

15、a.a.(加法运算符,或正值运算符。如(加法运算符,或正值运算符。如3+53+5,+3+3) (减法运算符,或负值运算符。如(减法运算符,或负值运算符。如5-25-2,-3-3) * * ( (乘法运算符。如乘法运算符。如3 3* *5)5) (除法运算符。如(除法运算符。如5/35/3) (模运算符,或称求余运算符,两侧均应为(模运算符,或称求余运算符,两侧均应为整型数据,如整型数据,如的值为的值为)。)。b.b.用算术运算符和括号将运算对象(也称操作数)用算术运算符和括号将运算对象(也称操作数)连接起来的、符合连接起来的、符合C C语法规则的式子,称语法规则的式子,称C C算术表达算术表达

16、式。式。c.c.在进行运算时,不同类型的数据要先转换成在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。同一类型,然后进行运算。d.d.自增自增(+)(+)和自减和自减(-)(-)运算符作用运算符作用+i i(在使用在使用i i之前,先使之前,先使i i的值加的值加1 1,如果,如果i i的原的原值为值为3 3,则执行,则执行j=+ij=+i后,后,j j的值为的值为4 4)-i (i (在使用在使用i i之前,先使之前,先使i i的值减的值减1 1,如果,如果i i的原的原值为值为3 3,则执行,则执行j=-ij=-i后,后,j j的值为的值为2)2)i+ (i+ (在使用在使用

17、i i之后,使之后,使i i的值加的值加1 1,如果,如果i i的原值的原值为为3 3,则执行,则执行j=i+j=i+后,后,j j的值为的值为3 3,然后,然后i i变为变为4)4)i-(i-(在使用在使用i i之后,使之后,使i i的值减的值减1 1,如果,如果i i的原值为的原值为3 3,则执行,则执行j=i-j=i-后,后,j j的值为的值为3 3,然后,然后i i变为变为2)2)(e)(e)可以利用强制类型转换运算符将一个表达式可以利用强制类型转换运算符将一个表达式转换成所需类型。转换成所需类型。强制类型转换强制类型转换的一般形式为的一般形式为: :(类型名)(表达式)例如:(类型名

18、)(表达式)例如:(intint)()(x+yx+y) (将(将x+yx+y的值转换成整型)的值转换成整型)( (double)double) (将(将a a转换成转换成doubledouble类型)类型)(intint)x+y(x+y(只将转换成整型,然后与相加只将转换成整型,然后与相加) )int(x) int(x) 或或 int(x+y)(int(x+y)(类型名不加括号,而变量类型名不加括号,而变量或表达式用括号括起来或表达式用括号括起来例例2. 2. 强制类型转换。强制类型转换。# #include include using namespace std;using namespac

19、e std;int main( )int main( ) float x; float x; int i; int i; x=3.6; x=3.6; i=(int)x; i=(int)x; coutx=x,i= iendl; coutx=x,i= iendl; return 0; return 0; 运行结果如下:运行结果如下:3.63.6,i=3i=3的型仍为的型仍为floatfloat型,值仍等于型,值仍等于3.63.6。a.a.赋值运算符赋值运算符赋值符号赋值符号“”就是赋值运算符,它的作用就是赋值运算符,它的作用是将一个数据或表达式的值赋给一个变量。是将一个数据或表达式的值赋给一个变量

20、。b.b.赋值过程中的类型转换赋值过程中的类型转换(1)(1)将浮点型数据(包括单、双精度)赋给将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分。整型变量时,舍弃其小数部分。(2)(2)将整型数据赋给浮点型变量时,数值不将整型数据赋给浮点型变量时,数值不变,但以指数形式存储到变量中。变,但以指数形式存储到变量中。(3)(3)将一个将一个doubledouble型数据赋给型数据赋给floatfloat变量时,变量时,要注意数值范围不能溢出。要注意数值范围不能溢出。(4)(4)字符型数据赋给整型变量,将字符的字符型数据赋给整型变量,将字符的ASCIIASCII码赋给整型变量码赋给整型变

21、量。(5)(5)将一个将一个intint、shortshort或或longlong型数据赋给一个型数据赋给一个charchar型变量,只将其低型变量,只将其低8 8位原封不动地送到位原封不动地送到charchar型变量(发生截断)。例如型变量(发生截断)。例如short int i=289;short int i=289;char c;char c;c=i; /c=i; /将一个将一个intint型数据赋给一个型数据赋给一个charchar型变量型变量(6)(6)将将signed(signed(有符号有符号) )型数据赋给长度相同的型数据赋给长度相同的unsigned(unsigned(无符号

22、无符号) )型变量,将存储单元内容原样型变量,将存储单元内容原样照搬(连原有的符号位也作为数值一起传送)。照搬(连原有的符号位也作为数值一起传送)。例例3.3.将有符号数据传送给无符号变量。将有符号数据传送给无符号变量。# #include include using namespace std;using namespace std;int main( )int main( ) unsigned short a; unsigned short a; short int b=-1; short int b=-1; a=b; a=b; couta=aendl; couta=aendl; return 0; return 0;

温馨提示

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

评论

0/150

提交评论