ImageVerifierCode 换一换
格式:PPT , 页数:57 ,大小:178.94KB ,
文档编号:3709709      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3709709.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

C++程序设计基础知识课件.ppt

1、C+程序设计 C+基础知识第第2章章 C+基础知识基础知识 本章学习要点本章学习要点从C程序到C+程序的发展历程简单的C+程序C+的输入输出、数据类型、函数及指针C+的常变量、引用、名字空间、字符串变量C+程序的编写和实现第第2章章 C+基础知识基础知识本章学习目标本章学习目标了解从C程序到C+程序的发展历程对简单的C+程序有整体的感性认识掌握C+对C的扩充掌握C+的输入输出、数据类型、函数及指针掌握C+的常变量、引用、名字空间、字符串变量熟悉C+程序的编写和实现流程2.1 从C到C+C+3.0C+2.0C+1.0带类的带类的CCC+4.0ANSI C+89年,增加类的多继承91年,增加模板增

2、加异常处理、名字空间、运行时类型识别97年,成为标准2.2 简单C+程序v通过简单的通过简单的C+例子认识例子认识C+程序程序 【例2-1】在屏幕上输出一行字符“Hello C+!”。/=#include/包含头文件命令using namespace std;/使用名字空间stdint main()coutHello C+!endl;/输出字符串到屏幕return 0;/main函数返回0至操作系统/=注意:标准C+程序和C程序的不同:main函数的返回值为整型 使用cout输出及需要用到的头文件iostream 名字空间2.2 简单C+程序C+的函数和C语言的函数非常相似 函数的使用仍然需要

3、先声明后使用。如果函数定义在函数调用之后,则必须在前面声明函数原型【例2-2】通过函数求两个整数a和b的和。/=#include/包含头文件命令using namespace std;/使用名字空间stdint sum(int x,int y)return x+y;/求和的函数int main()int a,b;/定义两个变量a和bcoutInput to a and b:ab;/等待用户从键盘输入数据couta+b=sum(a,b)endl;/输出结果信息至屏幕return 0;/main函数返回0至操作系统/=2.2 简单C+程序【例2-3】声明一个关于人的类Person,人的信息包括姓名

4、、性别、年龄,人可以输入自己的信息,也可以显示自己的信息。#include/包含头文件命令using namespace std;/使用名字空间stdclass Person/类的声明public:/以下为类的公用成员函数void SetInfo()/公用成员函数SetInfo coutnamesexage;/输入数据至私有数据成员void Show()/公用成员函数Show cout name:name;/输出私有成员name的值cout sex:sex;/输出私有成员sex的值cout age:age、运算符运算符2.3.2 数据类型的扩展基本基本类型类型空类型空类型指针指针类型类型构造构

5、造类型类型C+数据类型整型、字符型整型、字符型浮点型浮点型布尔型布尔型枚举、数组枚举、数组结构体、共用体结构体、共用体类类2.3.3 用const定义常变量v直接常量和符号常量直接常量和符号常量v符号常量的缺点符号常量的缺点 运行时不分配内存单元运行时不分配内存单元 符号常量没有类型,在编译时不进行类型检查符号常量没有类型,在编译时不进行类型检查 替换后的表达式和预想的表达式是否一致替换后的表达式和预想的表达式是否一致v为了使常量也能像变量那样进行类型检查,为了使常量也能像变量那样进行类型检查,C+提供了用提供了用const定义常变量的方法定义常变量的方法v定义常变量的语法:定义常变量的语法:

6、const 类型类型 变量名变量名;2.3.3 用const定义常变量【例2-4】利用常变量计算圆的面积。/=#include using namespace std;int main()const float PI=3.14;/定义常变量float radius=0;coutradius;coutThe area of circle is:PI*radius*radiusendl;return 0;/=注意注意const的位置,一般见到的的位置,一般见到的const的位置可能在类型的前面,但是的位置可能在类型的前面,但是const也可以在变量名前面,并且两者的含义完全相同。也可以在变量名前面

7、,并且两者的含义完全相同。2.3.4 指针v指针的概念指针的概念 指针是一个重要概念,如果使用得当可以使程指针是一个重要概念,如果使用得当可以使程序高效、简洁、紧凑。如果对指针掌握不牢固,序高效、简洁、紧凑。如果对指针掌握不牢固,编程则会出现意想不到的错误编程则会出现意想不到的错误 指针是内存单元的地址指针是内存单元的地址 经常所讲的指针是指针变量的简称,是用来存经常所讲的指针是指针变量的简称,是用来存放指针(地址)的变量。放指针(地址)的变量。v本节重点讨论本节重点讨论C+中使用指针需要注中使用指针需要注意的地方意的地方 2.3.4.1 指针与0v空指针空指针 空指针表示空指针表示“未分配未

8、分配”或者或者“尚未指向尚未指向任何地方任何地方”的指针的指针 空指针一般用来判断内存分配是否成功空指针一般用来判断内存分配是否成功 注意:注意:“空指针空指针”与与“野指针野指针”的区别的区别 在指针上下文中的常数在指针上下文中的常数0被编译成空指针被编译成空指针 程序员更常使用符号常量程序员更常使用符号常量NULL来表示空来表示空指针指针 2.3.4.1 指针与0【例2-5】指针和0/=#include using namespace std;int main()int*p=0;/定义空指针pint*q;/定义野指针qint x=100;/定义整型变量x并初始化为100/*p=50;/若执

9、行则编译出错,不能使用空指针*q=50;/编译通过,但不知把50写到何处p=q=&x;/使指针p和q都指向变量xif(p!=0)/判断指针p是否为空指针cout*p *qendl;/输出变量x的值/=注意注意编程时养成定义指针时初始化为空指针,使用指针时判断是否为空指针的好习惯,可以减少程序中指针的许多错误。2.3.4.2 指针与const【例2-6】指向const变量的指针。/=#include using namespace std;int main()const int*p=NULL;/定义指向const变量的指针pconst int a=10;/定义常变量ap=&a;/指针p指向aco

10、ut*p=*pendl;/输出p所指向单元的内容int b=100;/定义普通变量bp=&b;/指针p指向bcout*p=*pendl;/输出p所指向单元的内容/*p=200;/错误,不能通过p修改p所指向单元内容b=200;cout*p=*pendl;/输出p所指向单元的内容return 0;/=通过本例可以看到可以改变指向const变量的指针的指向,但是不能通过指针修改指针指向单元内容2.3.4.2 指针与const通过本例可以看到可以改变const指针指向单元的内容,但是不能改变const指针的指向。【例2-7】const指针。/=#include using namespace std

11、;int main()int a=10;/定义普通变量aint b=100;/定义普通变量bint*const p=&a;/定义const指针p并初始化指向acout*p=*pendl;/输出p所指向单元内容/p=&b;/错误,不能改变const指针p的指向*p=100;/通过指针修改p所指向单元内容cout*p=*pendl;/输出p所指向单元内容return 0;/=2.3.4.2 指针与const对于指向const变量的const指针,既不能改变指针指向单元的内容,也不能改变指针的指向。【例2-8】指向const变量的const指针。/=#include using namespace

12、std;int main()int a=10;int b=100;const int*const p=&a;/定义指向const变量的const指针pcout*p=*pendl;/输出p所指向单元内容/p=&b;/错误,不能改变指针p的指向/*p=100;/错误,不能改变p所指向单元的内容return 0;/=2.3.4.2 指针与constv小结小结指针和指针和const的关系比较复杂,的关系比较复杂,const有两个位置,可形成三种指针:有两个位置,可形成三种指针:1.只在只在“*”之前有之前有const的指针,称为指的指针,称为指向向const变量的指针;变量的指针;2.只在只在“*”之

13、后有之后有const的指针,称为的指针,称为const指针;指针;3.“*”前后都有前后都有const的指针,称为指向的指针,称为指向const变量的变量的const指针。指针。2.3.4.3 void指针vvoid在作为函数类型和参数类型时为在作为函数类型和参数类型时为空类型,表示没有返回值或参数。空类型,表示没有返回值或参数。vvoid修饰指针时称为修饰指针时称为“无类型指针无类型指针”,表示该指针可以指向任意类型的变量。表示该指针可以指向任意类型的变量。v虽然虽然void指针可以指向任意类型的数指针可以指向任意类型的数据,但是在使用据,但是在使用void指针时必须对其指针时必须对其进行强

14、制类型转换成它所指向单元的进行强制类型转换成它所指向单元的实际类型,然后才可以使用实际类型,然后才可以使用 2.3.4.3 void指针【例2-9】void指针的声明与使用。/=#include using namespace std;int main()int x=100;void*p=&x;/定义void指针p指向x int*q=NULL;/定义整型指针q /cout*p=*pendl;/错误,非法使用指针p cout*p=*(int*)pendl;/正确,输出p指向单元内容 /q=p;/错误,非法,void指针赋给整型指针 q=(int*)p;/正确,合法,void指针赋给整型指针 co

15、ut*q=*qendl;/输出指针q指向单元内容 return 0;/=2.3.4.3 void指针v为什么要使用为什么要使用void指针指针 因为因为void指针可以指向任意类型的数据,指针可以指向任意类型的数据,所以使用所以使用void指针时把指针时把void指针所指向指针所指向的数据给抽象化了,这样可以增加程序的数据给抽象化了,这样可以增加程序的通用性的通用性 v使用使用void指针的两个例子指针的两个例子void*memcpy(void*dest,const void*src,size_t len);void*malloc(unsigned int size);2.3.4.4 new和

16、deletevC语言的动态内存管理语言的动态内存管理 malloc()和和free()函数函数 主要缺点主要缺点函数的返回值是函数的返回值是voidvoid*类型类型 分配内存单元时根据参数分配内存单元时根据参数sizesize的值来分配,的值来分配,无法检查错误无法检查错误分配到的内存单元无法初始化分配到的内存单元无法初始化vC+中使用中使用new和和delete运算进行动运算进行动态内存管理态内存管理2.3.4.4 new和delete【例2-11】使用new和delete动态管理内存单元。/=#include using namespace std;int main()int*p=NUL

17、L;/定义整型指针p p=new int;/用new申请可以存放一个整型数据的内存单元 cout*p=*pendl;/输出指针p指向单元的内容 delete p;/delete释放指针p指向内存单元 return 0;/=2.3.4.4 new和deletev申请内存空间并进行初始化申请内存空间并进行初始化 指针变量指针变量=new 数据类型数据类型(初值初值);v分配多个连续变量的存储空间分配多个连续变量的存储空间 使用使用new 和和delete 指针变量指针变量 =new=new 数据类型数据类型 元素个数元素个数;delete delete 指针变量指针变量;:兼容兼容C语言的语言的m

18、alloc/free方式方式,单个变量的单个变量的new/delete方式方式,多个变量的多个变量的new/delete 方式方式 2.3.5 引用v引用就是某一变量的别名,对引用的引用就是某一变量的别名,对引用的操作与对变量直接操作完全一样操作与对变量直接操作完全一样 v引用的声明方法引用的声明方法 类型标识符类型标识符&引用名引用名=目标变量名目标变量名;“&”运算符在变量的前面表示取地址运算,在赋值运算任的左侧是引用运算符,这种在不同的上下文环境中具有不同含义的现象,称之为运算符功能重载。2.3.5 引用【例2-12】使用引用访问变量。/=#include using namespace

19、 std;int main()int x=100;/定义整型变量x int&rx=x;/定义变量x的引用rx coutrx=rxendl;/输出引用rx的内容 rx=200;/给引用rx赋值 coutx=xendl;/输出变量x的内容 return 0;/=程序执行后运行的结果如下:rx=100 x=2002.3.5 引用【例2-13】编写一个函数,交换两个整型变量的值。/=#include using namespace std;void swap(int&x,int&y)/定义swap函数用来交换两个变量int tmp;tmp=x;x=y;y=tmp;int main()int x=10,

20、y=20;cout交换前:x=x,y=yendl;swap(x,y);/调用swap函数进行交换cout交换后:x=x,y=yendl;return 0;/=通过函数交换两通过函数交换两个变量的值有三种形个变量的值有三种形式:值传递、地址传式:值传递、地址传递和引用传递。其中递和引用传递。其中值传递不能实现交换值传递不能实现交换的目的,引用传递和的目的,引用传递和地址传递都可以实现地址传递都可以实现,但引用传递的形式更但引用传递的形式更简单。简单。2.3.5 引用v引用和引用和const 可以用可以用const对引用加以限制,不允许改对引用加以限制,不允许改变该引用的值变该引用的值 const

21、引用和语法引用和语法const const 类型标识符类型标识符&引用名引用名 =目标变量名目标变量名;利用常引用作为函数形参,既能提高程利用常引用作为函数形参,既能提高程序的执行效率,又能保护传递给函数的序的执行效率,又能保护传递给函数的数据不在函数中被改变,达到保护实参数据不在函数中被改变,达到保护实参的目的的目的 2.3.5 引用v引用作为函数的返回值引用作为函数的返回值【例2-14】引用作为函数的返回值。#include using namespace std;int&max(int&x,int&y)/此函数的返回值为对参数x和y中大的那个变量的引用 return(xy)?x:y;in

22、t main()int a=2,b=3;couta=a b=b endl;max(a,b)=4;couta=a b=b endl;return 0;由于函数的返回值为引用类型,所以可以为函数赋值,为函数赋的值赋给两个参数中的大者,所以a的值为2,b的值为42.3.6 函数v面向过程的面向过程的C+程序中的函数与程序中的函数与C语言语言中的函数基本相同中的函数基本相同v面向对象的面向对象的C+程序中的函数有成员程序中的函数有成员函数和公共函数之分函数和公共函数之分v主要讨论面向过程的主要讨论面向过程的C+程序中函数程序中函数与与C语言函数的区别语言函数的区别2.3.6.1 函数原型声明v在函数尚

23、未定义的情况下,先将函数在函数尚未定义的情况下,先将函数的形式告诉编译系统,以便编译能够的形式告诉编译系统,以便编译能够正常进行正常进行 v函数原型声明的语法形式有两种:函数原型声明的语法形式有两种:(1)返回值类型 函数名(参数类型1,参数类型2,.);(2)返回值类型 函数名(参数类型1 参数名1,参数类型2 参数名2,.);函数原型声明和函数定义是不同的。函数原型声明不是一个独立的完整的函数单位,它仅仅是一条语句,因此在函数原型声明后面一定要加上分号。2.3.6.2 函数默认参数v在多次调用一个函数将实参传递给形在多次调用一个函数将实参传递给形参时,其中可能有一个或几个参数,参时,其中可

24、能有一个或几个参数,它们传递进来的实参值多次相同它们传递进来的实参值多次相同v在定义或声明函数时,给形参一个默在定义或声明函数时,给形参一个默认值,如果在调用时没有给该形参传认值,如果在调用时没有给该形参传递实参值,则使用默认值作为该形参递实参值,则使用默认值作为该形参的值;如果调用时给该形参传递了实的值;如果调用时给该形参传递了实参值,则使用实参的值作为该形参的参值,则使用实参的值作为该形参的值。值。2.3.6.2 函数默认参数【例2-16】求两个或三个正整数中的最大值,使用带有默认参数的函数实现。/=#include using namespace std;int main()int ma

25、x(int,int,int=0);/带有默认参数的函数原型声明int a=5,b=8,c=10;coutmax of a and b is:max(a,b)endl;/调用默认参数的函数coutmax of a,b and c is:max(a,b,c)endl;return 0;int max(int a,int b,int c=0)/定义带有默认参数的函数 if(a b)a=b;if(a c)a=c;return a;/=2.3.6.2 函数默认参数调用带有默认参数的函数时,实参的个数可以与形参的个数不同,对于实参未给出的,可以从形参的默认值中获得,利用这一特性,可以使函数的使用更加灵活。

26、2.3.6.3 函数与引用v函数的参数是引用函数的参数是引用 当使用引用作为函数的形参时,引用不当使用引用作为函数的形参时,引用不是一个单独的变量,不需要在内存中分是一个单独的变量,不需要在内存中分配存储单元,实参向形参传递的是变量配存储单元,实参向形参传递的是变量的名字,而不是变量的地址。使用引用的名字,而不是变量的地址。使用引用作为函数的形参可以部分代替指针,降作为函数的形参可以部分代替指针,降低了程序的复杂度,提高了程序的执行低了程序的复杂度,提高了程序的执行效率,同时也提高了程序的可读性。效率,同时也提高了程序的可读性。v函数的返回值是引用函数的返回值是引用 2.3.6.4 函数与co

27、nstvconst修饰函数的参数修饰函数的参数 调用函数时用相应的值初始化调用函数时用相应的值初始化const常量常量 函数体按照函数体按照const所修饰部分进行常量化所修饰部分进行常量化 vconst修饰函数的返回值修饰函数的返回值 用于二目操作符重载函数并产生新对象用于二目操作符重载函数并产生新对象vconst修饰整个函数修饰整个函数 这种情况发生在类的成员函数时这种情况发生在类的成员函数时 const的位置放在函数参数表的后面的位置放在函数参数表的后面 2.3.6.5 函数重载v一般情况下,一个函数名对应一个功能一般情况下,一个函数名对应一个功能 v特殊情况下,一个函数名对应多个功能特

28、殊情况下,一个函数名对应多个功能 功能是非常类似功能是非常类似 参数不同参数不同【例2-18】使用add为函数名定义整数的加法和两个浮点数的加法int add(int a,int b)/整数加法的add函数定义coutCall integer add function.endl;return a+b;float add(float a,float b)/浮点数加法的add函数定义coutCall float add function.endl;return a+b;2.3.6.5 函数重载函数重载需要函数参数的类型或个数必须至少有其函数重载需要函数参数的类型或个数必须至少有其中之一不同,函数返

29、回值类型可以相同也可以不同。但中之一不同,函数返回值类型可以相同也可以不同。但是,不允许参数的个数和类型都相同而只有返回值类型是,不允许参数的个数和类型都相同而只有返回值类型不同。从语法上来说,可以让两个或多个完全不相干的不同。从语法上来说,可以让两个或多个完全不相干的函数使用相同的函数名,进行重载,但是这样做使得程函数使用相同的函数名,进行重载,但是这样做使得程序的可读性下降,不建议这样做。使用同名函数进行重序的可读性下降,不建议这样做。使用同名函数进行重载时,重载函数在功能上应该相近或属于同一类函数。载时,重载函数在功能上应该相近或属于同一类函数。2.3.6.6 内置函数v调用函数时系统需

30、要一定的时间和空调用函数时系统需要一定的时间和空间的开销间的开销 v当函数体很小而又需要频繁调用时当函数体很小而又需要频繁调用时,运运行效率与代码重用的矛盾变得很突出行效率与代码重用的矛盾变得很突出 v系统在编译时将所调用的内置函数的系统在编译时将所调用的内置函数的代码直接嵌入到主调函数中代码直接嵌入到主调函数中 v执行时就不会发生函数调用,而是顺执行时就不会发生函数调用,而是顺序执行序执行 2.3.6.6 内置函数【例2-20】将函数声明为内置函数。/=#include using namespace std;int main()int x=3,y=5;int s;inline int ad

31、d(int a,int b);/内置函数原型s=add(x,y);/调用函数add couts=sendl;return 0;inline int add(int a,int b)return a+b;/定义内置函数add/=2.3.6.6 内置函数2.3.7 名字空间v1.为什么需要名字空间为什么需要名字空间 引用名字空间的概念就是为了解决程序引用名字空间的概念就是为了解决程序中名字冲突的问题中名字冲突的问题 v2.什么是名字空间什么是名字空间 所谓名字空间就是一个由程序设计者命所谓名字空间就是一个由程序设计者命名的内存区域名的内存区域 根据需要指定一些有名字的空间域,把根据需要指定一些有名

32、字的空间域,把一些全局标识符放在各个名字空间中,一些全局标识符放在各个名字空间中,从而避免与其他同名的全局标识符混淆从而避免与其他同名的全局标识符混淆 2.3.7 名字空间v3.如何使用名字空间如何使用名字空间 定义名字空间时,语法如下:定义名字空间时,语法如下:其中成员的类型包括:常量、变量、函其中成员的类型包括:常量、变量、函数、结构体、类、模板等,还可以是名数、结构体、类、模板等,还可以是名字空间字空间 namespace 名字空间名 定义成员2.3.7 名字空间定义名字空间举例:namespace ns const int RATE=0.08;double money;double t

33、ax()return money*RATE;namespace ns2 int count;如果要访问名字空间ns中的成员,可以采用名字空间:成员名的方法,如ns:RATE、ns:money、ns:tax()、ns:ns2:count等 可以看到,在访问名字空间的成员时可能需要写很长的一串名字,使用时不太方便,为此C+提供了一些简化机制2.3.7 名字空间访问名字空间中成员的简化机制:访问名字空间中成员的简化机制:(1)使用名字空间的别名使用名字空间的别名 namespace Information .可以用一个较短的缩写作为别名来代替它。如:可以用一个较短的缩写作为别名来代替它。如:name

34、space Info=Information;(2)使用使用using名字空间的成员名名字空间的成员名 如:如:using ns:tax;后面访问后面访问tax()时就相当于时就相当于ns:tax()(3)使用使用using namespace名字空间名名字空间名 如:如:using namespace ns;这样在这样在using namespace声明的作用域中,名字空间声明的作用域中,名字空间ns中的成员就好中的成员就好像在全局域声明一样,可以直接使用而不必加名字空间名限定像在全局域声明一样,可以直接使用而不必加名字空间名限定2.3.7 名字空间v4.无名的名字空间无名的名字空间 没有名

35、字的名字空间没有名字的名字空间 由于没有名字空间名,在别的文件中无由于没有名字空间名,在别的文件中无法访问,它只能在本文件的作用域内有法访问,它只能在本文件的作用域内有效。相当于将无名名字空间的成员的作效。相当于将无名名字空间的成员的作用域限制在本文件内用域限制在本文件内。namespace void func()coutfunc in noname namespace!endl;2.3.7 名字空间v5.标准名字空间标准名字空间std C+系统将标准系统将标准C+库中的所有标识符都库中的所有标识符都放在名为放在名为std的名字空间中定义,即系统的名字空间中定义,即系统预定义的头文件中的函数、

36、类、对象和预定义的头文件中的函数、类、对象和类模板都是在名字空间类模板都是在名字空间std中定义的中定义的 一旦使用了名字空间一旦使用了名字空间std,就必须保证在,就必须保证在程序中不再定义与名字空间中已经出现程序中不再定义与名字空间中已经出现的标识符同名的量。例如在程序中不能的标识符同名的量。例如在程序中不能再定义名为再定义名为cin或或cout的对象。的对象。2.3.8 字符串变量vC语言对字符串的处理语言对字符串的处理vC+除保留除保留C语言对字符串的处理方式语言对字符串的处理方式外,又增加了一种新的类型外,又增加了一种新的类型:字符串类字符串类v用字符串类定义的字符串类类型的变用字符

37、串类定义的字符串类类型的变量称为字符串变量量称为字符串变量 v字符串变量可以代表一个字符串,而字符串变量可以代表一个字符串,而不必去关心字符串的内存分配问题不必去关心字符串的内存分配问题 2.3.8.1 字符串变量定义v定义字符串变量和定义普通变量一样定义字符串变量和定义普通变量一样vstring不是基本数据类型,所以在使不是基本数据类型,所以在使用时需要在文件的开头包含用时需要在文件的开头包含C+标准标准库中的库中的string头文件头文件 v注意:头文件的名字是注意:头文件的名字是string,而不,而不是是string.h string str1;/定义名字为str1的字符串变量stri

38、ng str2=Hello C+;/定义名字为str2的字符串变量并初始化#include 2.3.8.2 字符串变量赋值v使用字符串变量可以直接使用赋值运使用字符串变量可以直接使用赋值运算符给字符串变量赋值算符给字符串变量赋值v在赋值的过程中不必关心赋值的两个在赋值的过程中不必关心赋值的两个字符串的长度是否一致,字符串变量字符串的长度是否一致,字符串变量的长度随字符串的长度改变而改变的长度随字符串的长度改变而改变v字符串变量只存储字符串本身的字符,字符串变量只存储字符串本身的字符,而不包括结束符而不包括结束符0 v还可以用数组的方式对字符串变量中还可以用数组的方式对字符串变量中的某个字符进行

39、操作的某个字符进行操作 str1=Hello!;/使用字符串常量给字符串变量赋值str1=str2;/使用另一个字符串变量str2给字符串变量str1赋值2.3.8.3 字符串变量输入输出v字符串变量可以像普通变量那样使用字符串变量可以像普通变量那样使用输入输出流进行输入输出,如:输入输出流进行输入输出,如:vstring str1;vcin str1;vcout、=、=等等关系运算符来进行字符串的比较关系运算符来进行字符串的比较2.3.8.5 字符串数组定义了一个字符串数组strArray并初始化:string strArray5=Hello,this,is,C+,program;strArray0strArray1strArray2strArray3strArray4margorp+CsisihtolleH字符串数组字符串数组strArray的内存状况图的内存状况图 2.4 C+程序编写和实现vC+程序的实现与程序的实现与C语言程序实现的过语言程序实现的过程是一样的程是一样的 用用C+语言编写源程序语言编写源程序(.cpp)对源程序进行编译对源程序进行编译(.obj)对目标程序进行连接对目标程序进行连接(.exe)运行调试程序运行调试程序

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

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


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