C-第2章-C-数据类型课件.ppt

上传人(卖家):晟晟文业 文档编号:4105724 上传时间:2022-11-11 格式:PPT 页数:57 大小:281.88KB
下载 相关 举报
C-第2章-C-数据类型课件.ppt_第1页
第1页 / 共57页
C-第2章-C-数据类型课件.ppt_第2页
第2页 / 共57页
C-第2章-C-数据类型课件.ppt_第3页
第3页 / 共57页
C-第2章-C-数据类型课件.ppt_第4页
第4页 / 共57页
C-第2章-C-数据类型课件.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、第2章 C+数据类型主讲:鲁莹主讲:鲁莹本章内容本章内容 2.12.1 数据类型数据类型概述概述 2.22.2 常量与变量常量与变量 2.32.3 基本类型基本类型 2.42.4 运算符和表达式运算符和表达式 2.52.5 类型转换类型转换 基本整型基本整型()短整型短整型()整型整型 长整型长整型()无符号型无符号型()基本类型基本类型 单精度型单精度型()实型实型(浮点型浮点型)双精度型双精度型()字符型字符型()扩展双精度型扩展双精度型()数据类型数据类型 布尔型布尔型()空类型空类型()数组类型数组类型()指针类型指针类型(*)构造类型构造类型 结构体类型结构体类型)共用体类型共用体类

2、型()枚举型枚举型()类类()2.1 数据类型概述数据类型概述C+中新增2.1 2.1 数据类型概述数据类型概述数据类型和内存空间数据类型和内存空间不同的数据类型,加上不同的修饰符就具有了不不同的数据类型,加上不同的修饰符就具有了不同的特点,在内存中占用的空间也不同,因而其同的特点,在内存中占用的空间也不同,因而其所能表示的数值范围也不尽相同。所能表示的数值范围也不尽相同。内存单元的单位是字节,因此用来表示数据类型内存单元的单位是字节,因此用来表示数据类型的长度的单位也是字节。的长度的单位也是字节。2.1 2.1 数据类型概述数据类型概述注意整型注意整型intint的长度等于机器的字长:的长度

3、等于机器的字长:1616位机:位机:intint=2=2字节;字节;3232位机:位机:intint=4=4字节。字节。但是但是shortshort和和longlong表示的数据长度是固定的,任表示的数据长度是固定的,任何支持标准何支持标准C+C+的编译器都是如此,因而如果需的编译器都是如此,因而如果需要编写可移植性好的程序,应将整型声明为要编写可移植性好的程序,应将整型声明为shortshort或或longlong。2.1 2.1 数据类型概述数据类型概述例题例题 编写一个程序,输出基本数据类型编写一个程序,输出基本数据类型char,char,intint,float,float,doubl

4、e,booldouble,bool的长度。的长度。提示:提示:使用使用sizeofsizeof(数据类型数据类型)能够获取不同数据类型能够获取不同数据类型的长度。的长度。2.1 2.1 数据类型概述数据类型概述/输出基本数据类型的长度输出基本数据类型的长度#include using namespace std;void main()cout“char:”sizeof(char)“字节n;coutint:sizeof(int)字节n;coutfloat:sizeof(float)字节n;coutdouble:sizeof(double)字节n;coutbool:sizeof(bool)字节n;

5、2.2 2.2 常量与变量常量与变量2.2.1 常量2.2.2 变量#include#include using namespace std;using namespace std;void main(void)void main(void)const const intint PRICE=30;PRICE=30;intint num,total;num,total;float v,r,h;float v,r,h;num=10;num=10;total=num total=num*PRICE;PRICE;coutcouttotal total endlendl;r=2.5;r=2.5;h=3.

6、2;h=3.2;v=3.14159 v=3.14159*r r*r r*h;h;coutcoutv v endlendl;常量变量变量先声明后使用Page 9字符常量2.2.1 2.2.1 常量常量v严格来说,常量又分成符号常量和常数严格来说,常量又分成符号常量和常数。v符号常量符号常量:v代表一个固定不变值的名字代表一个固定不变值的名字v常数常数(整型和浮点型)整型和浮点型):v程序中使用的具体的数据程序中使用的具体的数据2.2.1 2.2.1 常量与常量与符号常量符号常量符号常量符号常量 C+C+中提供了一个关键字中提供了一个关键字constconst,用来区分常量和,用来区分常量和变量。

7、并且由于常量代表一个固定的值,并且该值变量。并且由于常量代表一个固定的值,并且该值在程序运行过程中不能够被改变,所以要求常量在在程序运行过程中不能够被改变,所以要求常量在定义的时候必须进行初始化定义的时候必须进行初始化。定义形式有:定义形式有:const 数据类型数据类型 符号常量名符号常量名=初始值初始值;例如:例如:const double PI=3.1415926;const double PI;PI=3.1415926;/error const double PI=;/error const int M=max(15,23);/error#define 符号常量名 初始值 例如:#de

8、fine PI 3.14159262.2.1 2.2.1 常量与常量与符号常量符号常量2.2.2 2.2.2 变变 量量什么是变量?什么是变量?在在C+C+中,变量是存储信息的地方。变量中,变量是存储信息的地方。变量的实质是内存中的一个地址空间,在这个的实质是内存中的一个地址空间,在这个地址空间中可以进行数据的存储和读取。地址空间中可以进行数据的存储和读取。2.2.2 2.2.2 变变 量量变量有三个基本要素变量有三个基本要素:名字、类型和值名字、类型和值。C+的程序设计中,在使用变量前必须首先的程序设计中,在使用变量前必须首先定义定义变量变量,即指定变量的,即指定变量的名称名称与与数据类型数

9、据类型。变量一经定义,系统根据其数据类型在内存中变量一经定义,系统根据其数据类型在内存中为该变量分配一定的存储单元,在该存储单元为该变量分配一定的存储单元,在该存储单元中可存放变量的中可存放变量的值值。变量的定义变量的定义 一般格式为一般格式为:数据类型关键字数据类型关键字 变量名表变量名表;说明说明:(:(1)1)变量名表变量名表:可以包含若干个变量,彼此间用:可以包含若干个变量,彼此间用 逗号逗号分开。分开。变量名必须是合法的标识符,变量名必须是合法的标识符,不不 能用能用C+C+的关键字作为变量名。的关键字作为变量名。(2)(2)数据类型数据类型:变量可以被定义为基本数据类型:变量可以被

10、定义为基本数据类型 和构造类型。和构造类型。例如:例如:int x;float area,width,length;变量的定义变量的定义 与C语言不同,C+语言中的变量定义不必位于程序的开始,可以穿插在其它语句中间。变量最好在使用时才定义,这样可以增加程序的可读性,避免变量发生混淆。初始化变量初始化变量 在定义变量的同时给其一个初始值,称为初始化变量。例如:unsigned short width=5;long width=8,length=8;double area,radius=20;或或 unsigned short width(5);long width(8),length(8);“函

11、数表示法函数表示法”double area,radius(20);初始化变量初始化变量#include using namespace std;void main()Int myAge=18;cout“myAge=”myAgeendl;myAge=20;cout“myAge=”myAgeendl;运行结运行结果:果:myAge=18myAge=201.整型2.实型(浮点型)3.字符型4.布尔类型5.void类型小结2.3 2.3 基本类型基本类型void main()1.整型常量的表示 2.整型变量的分类int整型常量的表示整型常量的表示(1)非非0开头的,以开头的,以0至至9数字、正负号组成

12、数字、正负号组成的常数,如的常数,如1234,-10为合法十进制整常数,而为合法十进制整常数,而123.0,1.23E+2是非法的是非法的十进制整常数。十进制整常数。(2)以以O开头的,由开头的,由0至至7数字组成的数字串,数字组成的数字串,不能带符号,如不能带符号,如O1234,O10为合法八进制整常数,为合法八进制整常数,而而1234,028则则是非法的八是非法的八进制整常数。进制整常数。整型常量的表示整型常量的表示(3)(3)以以0 x(0 x(或或0X)0X)开头的开头的,由由0 0至至9 9数字和数字和a a至至f(f(或或A A至至F)F)字符组成字符组成,不能带符号,如不能带符号

13、,如0 x100 x10,0 x2f0 x2f,0 xa0 xa为合法的十六进制整常数,而为合法的十六进制整常数,而1212,0 xgf0 xgf,20H20H是非是非法的法的十六进制整常数。十六进制整常数。注意:注意:C+C+中,十进制数有正负之分,但八进制和十六中,十进制数有正负之分,但八进制和十六进制数只能表示无符号整数。进制数只能表示无符号整数。v以下选项中可以作为以下选项中可以作为C/C+C/C+语言合法整数的是语言合法整数的是 。A)10110B B)0368 C)0Xffa D)x2a2整型变量的分类整型变量的分类(1)signed:表示有符号位表示有符号位(可缺省,可缺省,in

14、t型型);(2)unsighed:表示无符号位表示无符号位 (unsigned int型型);(3)long:表示长型表示长型(long int 型和型和unsigned long 型型);(4)short:表示短型表示短型(short int 型和型和unsigned short 型型);例如例如:signed int a;等价于等价于 int a;unsigned int a;等价于等价于 unsigned a;long int a;等价于等价于 long a;short int a;等价于等价于 short a;整型变量的分类整型变量的分类 在十进制、八进制和十六进制表示的整常数中,在十

15、进制、八进制和十六进制表示的整常数中,若数字串的后面加上字母若数字串的后面加上字母l(l(或或L)L),则说明该常数为长则说明该常数为长整数,如整数,如12L12L,027l027l,0 xa1L0 xa1L,0 x9FL0 x9FL。若数字串的后面若数字串的后面加上字母加上字母u(u(或或U)U),则说明该常数为无符号整数,如则说明该常数为无符号整数,如5U5U。1.实型常量表示法 2.实型变量的分类float和和double(1)由由、和和组成的常数,可组成的常数,可以省去整数部分,只保留小数部分,但绝对不能没有小以省去整数部分,只保留小数部分,但绝对不能没有小数点。如数点。如2.55,0

16、.0,-12.3,.234,250.等都是合法的十等都是合法的十进制小数。进制小数。(2)在小数表示法后加在小数表示法后加e e(或(或E E)及指数部分。及指数部分。:必须要有必须要有,且,且的指数必须的指数必须为为,指数部分,指数部分。如。如2.1E+5,123E-3,123e3,123.e3都是合法的,而都是合法的,而345,-.5,3.E,e5等都是等都是非法的指数形式。非法的指数形式。实型常量表示法实型常量表示法实型变量的分类实型变量的分类(1)单精度型:单精度型:float型型;(数据长度为数据长度为4个字节个字节)(2)双精度型:双精度型:double型型;(数据长度为数据长度为

17、8个字节个字节)(3)扩展双精度型:扩展双精度型:long double型型;(数据长度为数据长度为16个字节个字节)实型变量的分类实型变量的分类 1.1.在在C+C+中,一个实型常数如果没有任何中,一个实型常数如果没有任何说明,则表示说明,则表示型(默认型),如:型(默认型),如:12.3。2.2.若要表示若要表示型数,则必须在实型数后型数,则必须在实型数后面加上面加上,如:如:12.3f,12.3e4f。3.3.若要表示若要表示型数,则必须在型数,则必须在实数后加上实数后加上,如:如:12.3L,12.3e4L。1.字符型常量 2.字符串常量char 例如:例如:char c;用用括起来的

18、括起来的,其值为其值为ASCII代码代码值。如值。如a,A,#,$。在内存中,字符数据是以在内存中,字符数据是以ASCII码值存储的(即以整数表示),码值存储的(即以整数表示),。因此。因此C+C+使字符数据和整型数据之间可以通用。使字符数据和整型数据之间可以通用。如:如:A=65=0101=0 x41=01000001 A 和a 是不 a=97=0141=0 x61=01100001 同的字符常量 0=48=060=0 x30 0和 0是截然 1=49=061=0 x31 不同的两个数字符型常量字符型常量 H E L L O 0 字符串常量字符串常量是用一对是用一对括起来的括起来的。如。如“

19、a”,“a”,“123”,“How do you do?n”,“¥1.23”等都是字符串常量。等都是字符串常量。字符串中可以出现空格字符串中可以出现空格或其他字符,也可以包含或其他字符,也可以包含C+C+以外的字符,如以外的字符,如汉字汉字等等。v在在C+C+中,中,和和是不同的,字符串常是不同的,字符串常量中的字符连续存储,并在最后加上字符量中的字符连续存储,并在最后加上字符作为作为。例如字符串。例如字符串“HELLO”HELLO”在内存中占连在内存中占连续续6 6个内存单元,如图:个内存单元,如图:字符串常量字符串常量 字符串常量和字符常量字符串常量和字符常量的的区别区别为:为:表现形式不

20、同:表现形式不同:“x”,x 在内存中存放时所占空间不同:在内存中存放时所占空间不同:字符常量占字符常量占1字节字节用于用于存放字符的存放字符的ASCII码值;而字符串常量除码值;而字符串常量除每个字符占用每个字符占用1字节字节存存放其放其ASCII码值外,还需码值外,还需1字节存放结束标志字节存放结束标志0。例如例如“x”在内存中占连续两个单元在内存中占连续两个单元(即即2 2个字节个字节),第二个单元存放,第二个单元存放0结束符,而字符常量结束符,而字符常量x占一个字节。占一个字节。操作不同:操作不同:字符常量可以在一定范围与整数进行加减运字符常量可以在一定范围与整数进行加减运算。如算。如

21、r-a+3是合法的,而是合法的,而“r”-“a”+3是非法的。是非法的。存放两者的变量不同:存放两者的变量不同:字符常量存放在字符常量存放在字符变量字符变量中,而中,而字符串常量需要存放在一个一维字符串常量需要存放在一个一维字符数组字符数组中。如:中。如:char ch=a;是正确的,而是正确的,而char ch=“a”;是不正确的。是不正确的。即不能将即不能将字符串常量赋给字符变量。字符串常量赋给字符变量。“bool”是表示是表示的专有名词,所代表的意的专有名词,所代表的意义就只有义就只有“真真true”和和“假假false”两种。布尔数据是两种。布尔数据是用来控制程序的执行方式的,或者说是

22、用来处理程序用来控制程序的执行方式的,或者说是用来处理程序中判断或比较结果的。中判断或比较结果的。例如:例如:bool flag=true;/声明一个布尔变量声明一个布尔变量 double d=5.32;if(flag=false)d=3.24;由定义,由定义,true转为整型值时为转为整型值时为1 1,false为为0 0。相应的,。相应的,非零值可以隐式地转为非零值可以隐式地转为true,而而0 0为为false。bool类型的类型的变量至少占据和变量至少占据和char一样的空间。一样的空间。2.4 2.4 运算符与表达式运算符与表达式 基本算术运算符 +-*/(若整数相除,结果取整)%(

23、取余,操作数为整数)优先级与结合性先乘除,后加减,同级自左至右+,-(自增、自减)例:i+;-j;Page 35基本数据类型和表达式 举例n=n+5 表达式的类型等号左边对象的类型 表达式的值等号左边对象被赋值后的值Page 36基本数据类型和表达式 有10种复合运算符:+=,-=,*=,/=,%=,=,&=,=,|=例a+=3 等价于 a=a+3x*=y+8 等价于 x=x*(y+8)基本数据类型和表达式a=5表达式值为5a=b=c=5表达式值为5,a,b,c均为5a=5+(c=6)表达式值为11,a为11,c为6a=(b=4)+(c=6)表达式值为10,a为10,b为4,c为6a=(b=1

24、0)/(c=2)表达式值为5,a为5,b为10,c为2a+=a-=a*a 相当于 a=a+(a=a-a*a)Page 38基本数据类型和表达式 格式表达式1,表达式2 求解顺序及结果先求解1,再求解2,最终结果为表达式2的值 例a=3*5,a*4 最终结果为60Page 39基本数据类型和表达式关系运算与关系表达式 关系运算是比较简单的一种逻辑运算,优先次序为:=!=优先级相同(高)优先级相同(低)关系表达式是一种最简单的逻辑表达式其结果类型为 bool,值只能为 true 或 false。例如:ab,cb)&(xy)其结果类型为 bool,值只能为 true 或 false基本数据类型和表达

25、式 一般形式表达式1?表达式2:表达式3表达式1 必须是 bool 类型 执行顺序先求解表达式1,若表达式1的值为true,则求解表达式2,表达式2的值为最终结果若表达式1的值为false,则求解表达式3,表达式3的值为最终结果 例:x=ab?a:b;基本数据类型和表达式 注意:条件运算符优级高于赋值运算符,低于逻辑运算符表达式2、3的类型可以不同,条件表达式的最终类型为 2 和 3 中较高的类型。例:x=ab?a:b;基本数据类型和表达式sizeof 运算符 语法形式sizeof(类型名)或 sizeof(表达式)结果值:“类型名”所指定的类型或“表达式”的结果类型所占的字节数。例:size

26、of(short)sizeof(x)基本数据类型和表达式 运算规则 将两个运算量的每一个位进行逻辑与操作 举例:计算 3&5 3:0 0 0 0 0 0 1 1 5:(&)0 0 0 0 0 1 0 13&5:0 0 0 0 0 0 0 1 用途:将某一位置0,其它位不变。例如:将 char 型变量 a 的最低位置 0:a=a&0376;取指定位。例如:有 char c;int a;取出 a 的低字节,置于 c 中:c=a&0377;基本数据类型和表达式 运算规则 将两个运算量的每一个位进行逻辑或操作 举例:计算 3|5 3:0 0 0 0 0 0 1 1 5:(|)0 0 0 0 0 1 0

27、 13|5:0 0 0 0 0 1 1 1 用途:将某些位置1,其它位不变。例如:将 int 型变量 a 的低字节置 1:a=a|0 xff;基本数据类型和表达式 运算规则两个操作数进行异或:若对应位相同,则结果该位为 0,若对应位不同,则结果该位为 1,举例:计算 071052 071:0 0 1 1 1 0 0 1 052:()0 0 1 0 1 0 1 0 071052:0 0 0 1 0 0 1 1基本数据类型和表达式 用途:使特定位翻转(与0异或保持原值,与1异或取反)例如:要使 01111010 低四位翻转:0 1 1 1 1 0 1 0 ()0 0 0 0 1 1 1 10 1

28、1 1 0 1 0 1基本数据类型和表达式单目运算符,对一个二进制数按位取反。例:025:0000000000010101 025:1111111111101010基本数据类型和表达式 左移运算()右移后,低位:舍弃 高位:无符号数:补0 有符号数:补“符号位”基本数据类型和表达式运算符优先级基本数据类型和表达式 (1)运算符的优先级按单目、双目、三运算符的优先级按单目、双目、三目、赋值依次降低。目、赋值依次降低。(2)算术、移位、关系、按位、算术、移位、关系、按位、逻辑运算的优先级依次降低。逻辑运算的优先级依次降低。运算符优先级括号+,-,sizeof*,/,%+,-=,!=位运算&|?:赋

29、值运算逗号运算低高基本数据类型和表达式2.5.1 2.5.1 自动类型自动类型转换转换 2.5.2 2.5.2 强制类型强制类型转换转换基本原则:编译系统自动将低类型数据转换为高类型数据。long double 高高 double float unsigned long long unsigned 低低 int char,short 强制类型转换强制类型转换是靠强制类型转换是靠强制类型转换控制运算控制运算符符实现的,其一般形式为:实现的,其一般形式为:其中操作数可以是其中操作数可以是变量名变量名或或表达式表达式,功能,功能是把操作数值的数据类型是把操作数值的数据类型暂时强行转换暂时强行转换为指

30、定为指定的数据类型的数据类型。例如:例如:double(a)、int(x+y)、float(5%3)。2.5.2 2.5.2 数据类型转换仅仅是为了数据类型转换仅仅是为了本次操作本次操作中中对操作数进行一时的转换,并不能改变对操作数进行一时的转换,并不能改变原数原数据类型说明据类型说明中所规定的数据类型。中所规定的数据类型。如果使用第二种格式,当操作数为如果使用第二种格式,当操作数为表表达式达式时,表达式应用括号时,表达式应用括号括起来括起来。例如:。例如:(int)(x+y)不不能写成能写成(int)x+y 。实验二 C+基础编程练习编程实现三个数求最大值。编程实现三个数求最大值。编程实现求解一元二次方程的解。编程实现求解一元二次方程的解。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C-第2章-C-数据类型课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|