《C基本数据类型和表达式.ppt》由会员分享,可在线阅读,更多相关《C基本数据类型和表达式.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 基本数据类型和表达式基本数据类型和表达式2.1 c+2.1 c+的基本数据类型的基本数据类型 1c+的数据类型1c+c+的数据类型的数据类型2C+基本数据类型基本数据类型整型整型int字符型字符型 char实型实型单精度型单精度型float双精度型双精度型double结构结构struct联合联合 union枚举枚举enum类类class数组数组type 指针指针type*空类型空类型void数据类型数据类型基本数据类型基本数据类型非基本数据类型非基本数据类型u类型修饰符类型修饰符Short long signed unsigned第二章第二章 基本数据类型和表达式基本数据类型和表
2、达式2基本数据类型修饰符 long(长型符)short(短型符)signed(有符号型)unsigned(无符号型)3用类型修饰符修饰后的基本数据类型43用类型修饰符修饰后的基本数据类型oo字符型字符型 说明符说明符char /character 占用内存占用内存1个字节个字节 前面可加前面可加signed或或unsigned 可以其可以其ASCII码值参与运算码值参与运算5修饰后的基本数据类型所属类型所属类型加修饰符后的加修饰符后的类型类型16位计算机位计算机中所占字节中所占字节数数备注备注charchar1unsignedchar1signedchar16修饰后的基本数据类型oo整型整型
3、说明符说明符int /integer 占用占用4字节(字节(32位微处理机)位微处理机)前面可加前面可加short(占(占2字节)或字节)或long(占(占 4字节)字节)前也可前也可signed或或unsigned修饰修饰7修饰后的基本数据类型所属类型所属类型加修饰符后的加修饰符后的类型类型16位计算位计算机中所占机中所占字节数字节数备注备注intint2unsignedint 2signedint28修饰后的基本数据类型所属类型所属类型加修饰符后的类型加修饰符后的类型16位计位计算机中算机中所占字所占字节数节数备注备注shortintshortint2shortunsignedshorti
4、nt2signedshortint 29修饰后的基本数据类型所属类型所属类型加修饰符后的类型加修饰符后的类型16位计位计算机中所算机中所占字节数占字节数备备注注longintlongint4longunsignedlongint 4signedlongint410oo实型实型单精度实型单精度实型双精度实型双精度实型长双精度实型长双精度实型 说明符说明符说明符说明符floatfloat 占用内存占用内存占用内存占用内存4 4个字节个字节个字节个字节说明符说明符double占用内存占用内存8个字节个字节说明符说明符long double占用内存占用内存10个字节个字节11修饰后的基本数据类型所属类
5、型所属类型加修饰符后的类型加修饰符后的类型16位计位计算机中所算机中所占字节数占字节数备备注注实型实型float4double8longdouble1012第二章第二章 基本数据类型和表达式基本数据类型和表达式2.2 整型数据1整型数据的基本情况(见表2-1)2操作符sizeof(数据类型)可测定某数据类型所占字节长度。例如:cout“size of int is”sizeof(int)endl;输出为:size of int is 213第二章第二章 基本数据类型和表达式基本数据类型和表达式3整型常量(整型常数):三种表示法(1)10进制常数(有正负):123,-46,0(2)8进制常数(无
6、符号):0开头的整数,如0123(3)16进制常数(无符号):0X或0 x开头的整数,如0 x123,0X23143.整型常量整型常量十进制整数,十进制整数,非0开头 123 -756八进制整数,八进制整数,以0开头 0123=0123=十六进制整数,十六进制整数,以0 x或0X开头 表示长整型常量可加后缀表示长整型常量可加后缀L或或l)83()123(108=)291()123(12301016=x第二章第二章 基本数据类型和表达式基本数据类型和表达式4.4.整形变量的定义和初始化整形变量的定义和初始化o变量命名:字母或下划线开头的字母、数字、下划线序列,不能为保留字。c+区分大小写。o变量
7、命名常用方法 常用方法:mycar,my_car16第二章第二章 基本数据类型和表达式基本数据类型和表达式o整形变量定义 int i,j,k;unsigned int myAge,myWeight;long area,width;o整形变量赋值和初始化 赋值:unsigned short width;width=5;/=为赋值号17第二章第二章 基本数据类型和表达式基本数据类型和表达式 初始化:unsigned short width=5;long width=7,length=7;double area,radius=23;18第二章第二章 2.3 2.3 字符型数据字符型数据1.字符型数据
8、的基本情况uu字符常量字符常量(Charater constants)u由单引号括起的字符,称为字符常量。由单引号括起的字符,称为字符常量。如:如:a,9,+u 转义字符表示控制字符或具有特定用途的字符。转义字符表示控制字符或具有特定用途的字符。u 在内存中,字符数据以在内存中,字符数据以ASCII码存储,码存储,o int a=b;o char c=97;o coutaendl;输出:输出:98o coutcendl;输出:输出:a19第二章第二章 基本数据类型和表达式基本数据类型和表达式2字符型常量的表示(1)常规字符:单引号括起的一个字符。如a,x,?等。(2)转义字符:以“”开头的字符
9、序列。如n,b等。(3)ddd,d为8进制数,表示范围为000 377。十进制数为0-255。20转转义义序列序列对对应应值值对对应应功功能能或或字符字符转转 义义 序序列列对应值对应值对应功能或字符对应功能或字符aa7 7响铃响铃9292反斜线反斜线bb8 8退格退格 3939单引号单引号ff1212换页换页”3434双引号双引号nn1010换行换行?6363问号问号rr1313回车回车cccccccccccc的的十十进进制值制值该值对应的字符该值对应的字符tt9 9水平制表水平制表xhhxhhhhhh的的 十十 进进制值制值该值对应的字符该值对应的字符vv1111垂直制表垂直制表21第二章
10、第二章 基本数据类型和表达式基本数据类型和表达式(4)xhh,h为16进制数,表示范围为x00-xff。十进制数为0-255。(5)单引号内后跟上述情况以外的其它字符,表示该字符本身。如:d即是d注:单引号,“双引号,反斜杠这三个字符只能用下述方法表示:单引号用,“双引号用”,反斜杠用。22第二章第二章 基本数据类型和表达式基本数据类型和表达式(6)字符串常量:用双引号括起来的字符序列以0作为结束标志,该字符占有一字节的存储空间,但并不计入字符串的长度。如:“C+string”其存储格式为:其中字符串的长度为9C+string023字符串常量字符串常量(String Literals)u由一对
11、双引号括起的字符序列称为字符串常量。由一对双引号括起的字符序列称为字符串常量。“How do you do?”“china”u字符串常量以字符串常量以0结束。结束。u可用续行符可用续行符可用续行符可用续行符“”对字符串续行对字符串续行对字符串续行对字符串续行u区分空字符区分空字符区分空字符区分空字符(ASCIIASCII为为为为0 0)与空格字符与空格字符与空格字符与空格字符(ASCIIASCII 为为为为3232)chin0a第二章第二章 基本数据类型和表达式基本数据类型和表达式3字符型变量的定义和初始化o定义:char c1;o初始化:char c2=A;25o字符型数据在外部表示字符,在
12、内存单元中存入的并不是该字符本身,而是该字符的ASCII码(整数值)。如:字符A ASCII码为65 字符a ASCII码为97o表达式求值过程中字符被转成与其代码等值的整数,进行计算(字符数据也可以进行加减乘除)如:b a+A=98-97+65=66=B4字符型和整形的关系26第二章第二章 基本数据类型和表达式基本数据类型和表达式o故只要范围合理,字符数据与整型数据可以互相赋值 如:char ch1=a,ch2=B;也可为char ch1=97,ch2=66;27第二章第二章 基本数据类型和表达式基本数据类型和表达式2.4枚举类型数据1枚举类型数据的基本情况2枚举类型的定义例如:enum w
13、eekdaySun,Mon,Tue,Wed,Thu,Fri,Sat;28第二章第二章 基本数据类型和表达式基本数据类型和表达式3枚举变量的定义例如:weekday w1,w4;4枚举变量的初始化例如:weekday w1=Mon;29第二章第二章 基本数据类型和表达式基本数据类型和表达式5枚举型数据与整型数据之间的关系o枚举中的符号与整数有一一对应关系例如:enum weekdaySun,Mon,Tue,Wed,Thu,Fri,Sat;0 1 2 3 4 5 630第二章第二章 基本数据类型和表达式基本数据类型和表达式o可以用=为一个符号规定任意整数,该符号增1为下一个符号的默认整数。例如:e
14、num somdigitsone=1,two,five=5,six,seven;1 2 5 6 72.5 实型数据1实型数据的基本情况31第二章第二章 基本数据类型和表达式基本数据类型和表达式2实型常量(实型常数):二种表示法(1)定点数形式:必须有小数点。如0.123,.234,0.0(2)指数形式:E或e前必有数字,后必为整数。如123e5,12.3e5 e3(不对),2.5e2.5(不对)32 说明:默认实型常数为double型,后加F或f表float型,后加l或L表long double型。例如:3.23,3.23f,3.23L 3.23e-3 3.23e-3F 3.23e-3l第二章
15、第二章 基本数据类型和表达式基本数据类型和表达式33*实型常量实型常量定点数形式定点数形式 如如15.01指数形式指数形式 如如3.5E7或或3.5e7 E或或e前必须有数值,后面指数必须为整数前必须有数值,后面指数必须为整数 实型常量分为单精度实型常量分为单精度(F或或f标识);双精标识);双精 度(默认);长双精度(度(默认);长双精度(L或或l标识)标识)endl=endline3实型变量的定义 double a,b;float xyz1,xyz23;4实型变量的初始化double a=3.16,n=9;float xyx1=3.23e-3f;第二章第二章 基本数据类型和表达式基本数据类
16、型和表达式35第二章第二章 基本数据类型和表达式基本数据类型和表达式 2.6 2.6 常量常量(constant)(constant)定义定义(1)常量定义时必须初始化。const float pi=3.1415926;const float g=9.8;const float pi;pi=3.1415926;/错误36第二章第二章 基本数据类型和表达式基本数据类型和表达式2.6 2.6 常量常量(constant)(constant)定义定义(2)const格式:格式:const 类型类型 符号常量符号常量=常量常量 如:如:constdoublePI=3.141592653uu常量只能读不
17、能修改,定义时必须初始化。常量只能读不能修改,定义时必须初始化。常量只能读不能修改,定义时必须初始化。常量只能读不能修改,定义时必须初始化。第二章第二章 基本数据类型和表达式基本数据类型和表达式2.6 2.6 常量常量(constant)(constant)定义定义(3)宏定义格式:宏定义格式:#define 符号常量符号常量(参数列表)(参数列表)常量常量 如:如:如:如:#definePI3.141592653#definePI3.141592653uu宏定义的符号常量无数据类型宏定义的符号常量无数据类型宏定义的符号常量无数据类型宏定义的符号常量无数据类型第二章第二章 基本数据类型和表达式
18、基本数据类型和表达式(4)相同类型的常量和变量在内存中占有相同大小的空间。但常量的内存空间值不可改变,变量的内存空间值可以改变。(5)c中,编译预定义指令#define亦可定义常量。(define vt.定义,详细说明)例#define PI 3.141592639第二章第二章 基本数据类型和表达式基本数据类型和表达式2.7 数值表达式1无操作符的表达式简单表达式如:54 3.987 car f()2算术操作符+(加)(减)*(乘)/(除、整除)%(求余)+(取正)(取负)例:10/2.0=5.0 10/3=3 10%3=140第二章第二章 基本数据类型和表达式基本数据类型和表达式3位操作符(
19、左移,如k(右移,如k2)|(按位或,k1|k2)&(按位与,如k1&k2)(按位异或,如k1 k2)按位求反,如k141第二章第二章 基本数据类型和表达式基本数据类型和表达式例:51值为2例:设E1为01101 设E2为00101oE1|E2值为01101oE1&E2值为00101oE1E2值为01000oE2值为111111111101101042第二章第二章 基本数据类型和表达式基本数据类型和表达式例:51值为20000010100000010十进制5十进制20十进制543位运算操作符位运算操作符设设 x=0 x55(01010101)y=0 x5a(01011010)(1)按位与运算按
20、位与运算 x=01010101 y=01011010&01010000(0 x50)x&y=0 x5044(2)按位或运算按位或运算 x=01010101 y=01011010|01011111(0 x5f)x|y=0 x5f注意:注意:int x=7;x&8 等于等于1 x&8 等于等于0(3)按位异或运算按位异或运算 x=01010101 y=01011010 00001111(0 x0f)x y=0 x0f(4)按位反运算按位反运算 x=01010101 10101010(0 xaa)x=0 xaa45第二章第二章 基本数据类型和表达式基本数据类型和表达式4赋值操作符(=)赋值表达式:赋
21、值操作符构成的表达式赋值表达式的值为赋值号左边表达式的值例:k=7;值为7 k=m=7;/k=(m=7);值为746第二章第二章 基本数据类型和表达式基本数据类型和表达式5复合赋值操作符+=(加赋值)-=(减赋值)*=(乘赋值)/=(除或整除赋值)%=(求余赋值)(右移赋值)|=(按位或赋值)&=(按位与赋值)=(按位异或赋值)例:k=3;/k=k+3;s*=j-3;/s=s*(j-3);47第二章第二章 基本数据类型和表达式基本数据类型和表达式6增1减1操作符o左值:能放在赋值号左边的表达式例:k=5;/k为左值(k=5)=28;/k=5为左值o右值:只能出现在赋值号右边的表达式例:k=4;
22、/4为右值constintb=100;/b为常量,只能出现在赋值号右边,为右值48第二章第二章 基本数据类型和表达式基本数据类型和表达式o+:增量操作符表示加1-:减量操作符表示减1+i(前增量)i+(后增量)-i(前减量)i-(后减量)例:+i /i=i+1 i+/i=i+1 -i /i=i-1 i-/i=i-1注:增量和减量的操作对象均要求为左值49第二章第二章 基本数据类型和表达式基本数据类型和表达式例如:intb=+a;/a=a+1;b=a;intb=a+;/b=a;a=a+1;intc=-a;/a=a-1;c=a;intc=a-;/c=a;a=a-1;50第二章第二章 基本数据类型和
23、表达式基本数据类型和表达式o前增量(前减量)在提取变量的值前先对变量增或减1,返回的值是修改后的变量值,故为左值。后增量(后减量)提取变量的值后才对变量增或减1,返回的值是修改前的变量值,故不为左值。例:+(a+);/+(+a);/(a-)-;/(-a)-;/k-j;/相当于(k-)-j,“-”号具右结合性同理-k-相当于-(k-)51第二章第二章 基本数据类型和表达式基本数据类型和表达式o若有多个+或-连写时,编译总是将前面两个+或-认为是增量或减量操作符。例:c=a+b;/c=a+b;/c=a+b;/c=a+b;/c=a+b;/52第二章第二章 基本数据类型和表达式基本数据类型和表达式7s
24、izeof操作符操作符sizeof(数据类型)可测定某数据类型所占字节长度。例如:cout“size of int is”sizeof(int)右d=a=3;/右左oC+中表达式的书写55第二章第二章 基本数据类型和表达式基本数据类型和表达式9.自动类型转换和强制类型转换自动类型转换和强制类型转换o自动类型转换方向见图56自动类型转换转换方向自动类型转换转换方向返回返回57第二章第二章 基本数据类型和表达式基本数据类型和表达式o强制类型转换强制类型转换格式:格式:(类型修饰符类型修饰符)表达式表达式 类型修饰符类型修饰符(表达式表达式)例:例:int(3.14+i)或或(int)(3.14+i
25、)char(64.8)或或(char)64.8或或(char)(64.8)P34练习题练习题58第二章第二章 基本数据类型和表达式基本数据类型和表达式2.8逻辑型数据和逻辑表达式1基本情况例:boolisOk,ready=true;2关系操作符和逻辑操作符关系运算符:比较(=)大于()小于(=)小于等于(=2)&(x=7)o子条件1|子条件2:如(x7)oE1|E2|EnoE1&E2&|En60第二章第二章 基本数据类型和表达式基本数据类型和表达式5相反条件例如:x3和x3的值为true,则x3和x0|x12&x=60)?”pass”:”fail”64第二章第二章 基本数据类型和表达式基本数据
26、类型和表达式o条件表达式可以嵌套例:(xy)?greatthan:(x=y)?equalto:lessthan)10typedef:为一个已有类型名提供一个同义词。定义格式:typedef 类型说明符 新类型名65第二章第二章 基本数据类型和表达式基本数据类型和表达式如:typedef int INT,integer;INT a;/int a;integer a;/int a;typedef double profit;profit d;/double d;11表达式的副作用表达式的副作用o表达式的副作用:表达式求值过程中,若参与运算的变量的值发生了改变,称此表达式是具有副作用的。66第二章第
27、二章 基本数据类型和表达式基本数据类型和表达式例:inti=1,j=2;cout(i+j+)endl;coutjendl;结果:33表达式i+j+具有副作用。67第二章第二章 基本数据类型和表达式基本数据类型和表达式o产生副作用的主要原因是引入了具有副作用的操作符。这些操作符包含:(1)赋值(2)复合赋值(+=,-=,*=等)(3)前增1前减1(+,-)(4)后增1后减1(+,-)68第二章第二章 基本数据类型和表达式基本数据类型和表达式o赋值,复合赋值,前增1和后增1的结果仍然是变量对象,即仍为左值o数值表达式,常量,后增1和后减1不能为左值例:(p+3)-=k;/+k*=5;/+5;/k+*=5;/100=p;/P45练习题69第二章第二章 基本数据类型和表达式基本数据类型和表达式12逗号表达式逗号表达式o格式:p1,p2,pn(其中pi为表达式)例:inta,b,c;a=1,b=a+2,c=b+3;o逗号表达式的值是其中最后一个表达式pn的值。例:inta,b,c,d;d=(a=1,b=a+2,c=b+3);coutdendl;结果:670
限制150内