




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本章目录 3.1C+的字符集的字符集 3.2 标识符和关键字标识符和关键字 3.3 数据类型数据类型 简单数据类型简单数据类型(一一) 数组数组(二二) 指针指针(三三) 援用援用(四四) 数据是程序处置的根本对象数据是程序处置的根本对象在程序中每种数据都应有确定的类型在程序中每种数据都应有确定的类型每种数据类型的变量都有确定的存储长度、取值范每种数据类型的变量都有确定的存储长度、取值范围及允许的操作。围及允许的操作。3.C+的字符集的字符集CHARACTERSET每种言语都运用一组字符构造程序的根本单元,每种言语都运用一组字符构造程序的根本单元, C+的字符集由以下字符组成:的字符集由以下
2、字符组成:大小写英文字母和大小写英文字母和数字字符数字字符其他字符其他字符 * , . _ : ; ? “ | ! # % & ( ) (空格空格)等等 3.标识符和关键字标识符和关键字IdentifiersandReserved words程序设计言语中为变量、常量、类型、函程序设计言语中为变量、常量、类型、函数等数等取的名字称为标识符。取的名字称为标识符。标识符由大小写字母、数字和下划线组成,标识符由大小写字母、数字和下划线组成,并并且只能以字母或下划线开场。且只能以字母或下划线开场。关键字是编译器已预定义好的,具有特定关键字是编译器已预定义好的,具有特定含义含义的标识符,也称为保
3、管字。的标识符,也称为保管字。 C+保管字保管字auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while bool catch class const_cast delete dynamic_cast explicit false friend inline m
4、utable namespace new operator private protected public reinterpret_cast static_cast template this throw true try typeid typename using virtual wchar_tasm cdecl far huge interrupt near pascal export except fastcall saveregs stdcall seg syscall fortran thread 红色:红色:C的的32个关键字个关键字 黄色:黄色:C+补充的补充的29个关键个关键
5、字字白色:白色:BC和和VC扩展的保管字扩展的保管字 以下变量名哪些合法? Way_cool myCar case Bits32 Iptr cout A Lot -vv switch While 52select while 3.数据类型数据类型程序中数据分为变量或常量,每个变量或常程序中数据分为变量或常量,每个变量或常量都有确定的数据类型。量都有确定的数据类型。空类型空类型void数组数组type 指针指针type *引引 用用 type&结构结构struct联合联合union枚举枚举enum类类class数据类型数据类型根本数据类型根本数据类型非根本数据类型非根本数据类型用于定义基
6、于根本数用于定义基于根本数据类型和外部数据类据类型和外部数据类型型外部数据类型整型整型int字符型字符型实型实型逻辑型逻辑型bool单精度型单精度型float双精度型双精度型double单字符型单字符型char宽字符型宽字符型w_char注:黄色标识的类型是C+中有而C没有的,其他两者皆有 类型修饰符类型修饰符 short (int )long(int,double) signed, unsigned(char,int) 类型定义类型定义typedef 为已有类型名取一个新名字。为已有类型名取一个新名字。 typedef int integer; integer a; /等价于等价于 int
7、a; 3.3.1整型 整数在计算机中的存储方式:二进制补码 整数的表示范围:见P67表3-2 整数的类型: signed, unsigned (char, short int, int , long int) 存储长度满足char=short int=int=long int注:注: 长整数表示为长整数表示为 123l 123L 无符号整数表示为无符号整数表示为 123u 例如:例如:b=02345L; c=235u+123u; 整型常数即整型常量整型常数即整型常量(整数字面值,有三种表示方法:整数字面值,有三种表示方法:十进制整数十进制整数123,-784 八进制整数八进制整数 0123=
8、十六进制整数十六进制整数 注注:八进制和十六进制只能表示正整数八进制和十六进制只能表示正整数 例如例如: int a=23; long int b=02345; unsigned int c=0 x79fa; )83()123(108= =)291()123(12301016= = =x 3.3.2 整数子类型 1、字符型 2、枚举型 3、布尔型(C+才有的类型) 1、字符型、字符型char字符的表示字符的表示单引号括起的字符,称为字符常量。单引号括起的字符,称为字符常量。 如:如:a, 9, +字符的存储:字符的存储:1个字节个字节256种形状:对于种形状:对于signed char,此,此
9、类型的类型的0127用于用于ASCII编码,编码,-1-128表示非正常形状;表示非正常形状;对于对于unsigned char 而言,此类型表示的整数范围为而言,此类型表示的整数范围为0255。由于由于char是是int的子集,所以的子集,所以char数据可以参与到整数的运数据可以参与到整数的运算中去,但是在输出上还是按本身类型输出。算中去,但是在输出上还是按本身类型输出。 int a=b; char c=97; int x=a+a; /x=98+7=105 coutaendl; / 输出:输出:98 coutcendl; /输出:输出:a 本义字符本义字符表示控制字符或具有特定用途的字符表
10、示控制字符或具有特定用途的字符 a 0 x07 响铃响铃 0 x27单引号单引号 n 0 x0A换行换行 ddd 13位八进制数位八进制数 t 0 x09 制表符制表符 xhh 12位十六进制位十六进制数数 0 x5c 反斜杠字符反斜杠字符 0 x22 双引号双引号 字符变量的初始化字符变量的初始化 char a=007, b=r, c=xab; 2、枚举型、枚举型enum Type /运用举例:获取当前系统时间运用举例:获取当前系统时间枚举型是对整数区间的自定义类型,用户须为区间中的值取枚举型是对整数区间的自定义类型,用户须为区间中的值取名。名。 enum color RED,BLUE,GR
11、EEN,WHITE,BLACK; Color是自定义的枚举类型。枚举成员是自定义的枚举类型。枚举成员RED,BLUE,GREEN等都是符号常量,枚举成员值按序初始化为等都是符号常量,枚举成员值按序初始化为0N。上例中上例中REDBLACK的值分别为的值分别为0。在定义枚举类型时也可为其成员指定枚举值在定义枚举类型时也可为其成员指定枚举值 : enum colorRED,BLUE=100,GREEN,WHITE,BLACK; 此时,此时,RED 为为0,BLUEBLACK分别为分别为100 103。一旦定义了枚举类型,该类型的变量的取值范围也确定了,一旦定义了枚举类型,该类型的变量的取值范围也确
12、定了,即其变量只能取花括号中的枚举值。即其变量只能取花括号中的枚举值。 color point=GREEN; 正确正确 color point=YELLOW; 错误错误虽然枚举值对应整数,但是枚举变量却不能获得整数值。虽然枚举值对应整数,但是枚举变量却不能获得整数值。 例如:例如:color c=0; /error:0是非枚举类型虽然是非枚举类型虽然RED代表代表整数整数0枚举类型的作用:普通作为整数常量运用。枚举类型的作用:普通作为整数常量运用。 3、布尔型、布尔型bool)C+中的类型中的类型bool型变量只需型变量只需true和和false两个逻辑值两个逻辑值,在编译系统中,其在编译系统
13、中,其定义相当于定义相当于 enum bool false, true ;由于由于bool型是整数的子类型,所以可以用任何整数给型是整数的子类型,所以可以用任何整数给bool型变量赋值,但是任何非型变量赋值,但是任何非0整数给整数给bool型变量赋值时,型变量赋值时,其值都为其值都为1,非整数的其他类型也一样,总之,只需非,非整数的其他类型也一样,总之,只需非0,其值都为,其值都为1。 bool a=3; /a为为ture bool b=1; /b为为ture bool c=a+b; /c为为ture bool d=true; /d为为ture bool e=a-b; /e为为false 完好
14、的例子完好的例子留意:留意:bool是是C+ 中的类型,中的类型,C言语中没有此类型,但是言语中没有此类型,但是C中有中有BOOL,运用,运用BOOL需求包含头文件需求包含头文件 在在C中运用中运用BOOL的完好的例子的完好的例子 3.3.3 浮点型实数,也称浮点数,有实数,也称浮点数,有float,double和和long double三种类型三种类型实型常量在书写时,默以为实型常量在书写时,默以为double类型,假设要表示类型,假设要表示float类型,要在其类型,要在其后加上后加上F或或f。 float f1=19.2f; float f2=0.192e+02; /将将double类型
15、的值转换成类型的值转换成float double d1=19.2; double d2=0.192e+02f; /将将float类型的值转换成类型的值转换成double long double ld1=19.2L; long double ld2=0.192e+02; /将将double类型的值转换成类型的值转换成long double两种表示方法:两种表示方法:定点数方式定点数方式1.123, 3.1415;科学计数法方式科学计数法方式 123e5, 123E5都表示都表示有效位有效位float (4字节字节) 7位位double (8字节字节) 15位位long double (10字节字
16、节)19位位 3.3.4 C-串与string 在C+中表示字符串的类型有以下三种C+字符指针 char *字符数组 char 字符串 string沿袭CC不支持 1、字符指针与字符串、字符指针与字符串1字符串常量字符串常量由一对双引号括起的字符序列称为字符串常量。由一对双引号括起的字符序列称为字符串常量。 “How do you do? “china字符串常量以字符串常量以0终了。终了。字符串常量通常存放在字符串常量通常存放在data area 的的const 区中,并以区中,并以0作为终了符,编译器记下其起始地址作为终了符,编译器记下其起始地址.即:地址即:地址代表了这个字符串常量。代表了
17、这个字符串常量。chin0a 由于字符串常量的地址属性,所以由一样字符组成的由于字符串常量的地址属性,所以由一样字符组成的字符串常量是两个不同起始地址的字符串常量。字符串常量是两个不同起始地址的字符串常量。 例如:例如:/f0303.cpp #include using namespace std; int main( ) cout(“join= =“join? “ : not)“equaln; char* str1 =“good; char* str2=“good; cout(str1= =str2? “ : “ not)“equaln; char buffer16=“Hello; char
18、 buffer26=“Hello; cout(buffer1=buffer2 ? “ : “not)“equaln; not equalnot equalnot equal 二者等价 例如:例如: #include using namespace std; void main( ) char buffer10=“ABC; char *pc; pc=“hello; coutbufferendl; /输出输出ABC coutpcendl; /输出输出hello pc+; coutpcendl; /输出输出ello cout*pcendl; /输出输出e pc=buffer; coutpc; /输出
19、输出ABC 字符数组和字符指针的区别字符数组和字符指针的区别字符数组也是字符指针,但是是字符指针常量字符数组也是字符指针,但是是字符指针常量,即即const char *类型,也即字符数组类型,也即字符数组一旦定义好,字符数组名是不能被重新赋值的一旦定义好,字符数组名是不能被重新赋值的而这里的字符指针类型而这里的字符指针类型char*用来定义字符指针变量,它被赋值后是可以再次赋值用来定义字符指针变量,它被赋值后是可以再次赋值的的访问单个字符的方式不一样访问单个字符的方式不一样,字符数组采用数组名加下标的方式字符数组采用数组名加下标的方式,字符指针采用字符字符指针采用字符指针加指针加*的方式的方
20、式例如:例如:#include using namespace std;void main( ) char buffer10=“ABC; char *pc=“hello; coutbufferendl; /输出输出ABC coutpcendl; /输出输出hello pc=“hi; /right coutpc; /输出输出hi buffer=“hi; /error coutbuffer2endl; /输出输出C字符字符 cout*pcendl; /输出输出h字符字符 字符串输出调用格式:C+: cout 字符串;C: printf(“%s,字符串名); puts(字符串首地址);功能:输出字符
21、串。例如:char* s=“hello; char ss=“Jim; couts,ss字符串变量;C: scanf(“%s%s,s1,s2);功能:输入一个无空白字符的字符串。例如:char s150,s250; cins1s2 ; /scanf(“%s%s,s1,s2); 假设输入ABCD 123XYZ WTR 那么s1和s2分别获得的值为ABCD和123XYZ b.调用格式2: C+: cin.getline(字符数组名,变量大小 C: gets(字符数组名) 功能:从键盘输入一个以enter键标志终了的字符串。 例如: char s81; cin.getline(s,81); / 也可以
22、 gets(s); 关于关于char * 类型字符串的输入类型字符串的输入 字符指针的赋值可以经过程序中字符指针的赋值可以经过程序中=“赋赋值值,也可以经过输入赋值也可以经过输入赋值 数组定义好后可以输入时直接赋值数组定义好后可以输入时直接赋值,但对但对于字符指针变量于字符指针变量,应先分配空间再赋值应先分配空间再赋值 例如例如: C言语版字符指针类型字符串输入言语版字符指针类型字符串输入 C+版字符指针类型字符串输入版字符指针类型字符串输入 字符串衔接函数字符串衔接函数strcat 要包含头文件要包含头文件调用方式调用方式: char* strcat(字符数组字符数组1,字符串字符串2);功
23、能功能:将字符串将字符串2衔接于字符数组衔接于字符数组1的后面的后面,函数前往衔接函数前往衔接以后的结果以后的结果.例如例如: char str120=This is a; char str2 = string; / 也可以为也可以为char *str2=“ string.; printf(%sn, strcat(s1,s2); printf(%s,%sn,s1,s2);输出输出: This is a stringThis is a strings , string 字符串拷贝函数字符串拷贝函数strcpy 要包含头文件要包含头文件调用方式调用方式: char* strcpy(字符数组字符数组
24、1,字符串字符串2);功能功能:将数组将数组2 拷贝到拷贝到 数组数组1中中,并前往字符数并前往字符数组组1例如例如: char s110=abcdef; char *s2=def; printf(%sn,strcpy(s1,s2); printf(s1=%s,s2=%sn,s1,s2); 输出输出: def s1=def,s2=def 思索题思索题: 假设有假设有 char s1=“abc; char s2=“def; /或者或者char * s2=“def; 那么运用那么运用=“进展赋值进展赋值s1=s2可不可以可不可以?为什为什么么? 字符比较函数字符比较函数strcmp 要包含头文件要
25、包含头文件调用方式调用方式: int strcmp(字符串字符串1,字符串字符串2);功能功能:将两字符串的字符从左到右逐个进展比较将两字符串的字符从左到右逐个进展比较.前往值为比较结果前往值为比较结果. 字符串字符串1=字符串字符串2 前往值为前往值为0 字符串字符串1字符串字符串2 前往值为前往值为1 字符串字符串1字符串字符串2 前往值为前往值为-1例如例如: i=strcmp(chinese,china); 那么那么: i等于等于1 测试字符串长度函数测试字符串长度函数strlen 要包含头文件要包含头文件调用方式调用方式: int strlen(字符串字符串);功能功能: 测试字符串
26、中字符个数测试字符串中字符个数,并将个数前往并将个数前往.例如例如: char str110=Turbo c; cout strlen(str1); 输出输出: 7 求子串位置strstr 要包含头文件调用格式:char* strstr字符串,子串;功能:在字符串中寻觅与子串一样的子串,如找到,前往该字符串的从子串起始处开场的后半部分,否那么前往一空字符串。例如:char s=“abcdefghi; couts3 strstr(s,def); 那么输出为:d defghi 反转字符串strrev 要包含头文件调用格式:char * strrev(字符数组)功能:将字符数组反转,并改动原来的存储,同时将反转后的字符串前往例如: char s1=“abc; printf(“%sn,strrev(s1); /输出cba 改动字符串中的全部字符strset(要包含string.h)格式:char* strset(字符数组, char b)功能:将字符数组中的每个字符都用b字符来取代,并将改动后的字符数组前往。例如:char s1=“abc; cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生产经营单位安全培训考试试题(典型题)
- 2025工程主体钢筋外包工合同
- 2025国内劳务合同范本
- 2025正规网约车买卖合同模板
- 2025金融借款合同模板
- 2025餐饮业雇佣合同模板
- 2025二手房购房合同协议书
- 2025年某合同段兰渝铁路高风险隧道施工实施细则
- 2025物流运输合同样本
- 2025华泰创新动力灵活配置混合型证券投资基金基金合同
- 2025年FRM金融风险管理师考试专业试卷(金融风险管理案例分析)
- 泥尾运输合同协议
- 低压电器 课件 单元三 项目三 任务一 掌握接触器联锁正反转控制线路
- 食堂食品追溯管理制度
- 北京市石景山区2025年高三统一练习(生物及答案)(石景山一模)
- 森林火灾风险评估-全面剖析
- 人教版2024-2025学年度八年级下册物理期中模拟测试卷(含答案)
- 设计变更流程管理培训
- 煤矿警示教育培训
- 数字时代的转变:高校数字素养教育的目标与方向
- 传染病的防控知识课件
评论
0/150
提交评论