cpp06-数组、指针与字符串.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cpp06-数组、指针与字符串

计算机学院 张荣博 办公室:图书馆826 E-mail:zhangrb@syiae.edu.cn 第六章 数组、指针与字符串 数组 数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。 数组属于构造类型。 一维数组的声明与引用 数组存放形式 二维数组的声明及引用 二维数组的声明 类型说明符 数组名[常量表达式][常量表达式] 例如:float a[3][4]; 对象数组 声明: 类名 数组名[元素个数]; 访问方法: 通过下标访问 数组名[下标] . 成员名 数组中每一个元素对象被创建时,系统都会调用类构造函数初始化该对象。 通过初始化列表赋值。 例: Point A[2]={Point(1,2),Point(3,4)}; 如果没有为数组元素指定显式初始值,数组元素便使用默认值初始化(调用默认构造函数)。 数组元素所属类的构造函数 不声明构造函数,则采用默认构造函数。 各元素对象的初值要求为相同的值时,可以声明具有默认形参值的构造函数。 各元素对象的初值要求为不同的值时,需要声明带形参的构造函数。 当数组中每一个对象被删除时,系统都要调用一次析构函数。 对象数组应用举例 //Point.h #if !defined(_POINT_H) #define _POINT_H class Point { public: Point(); Point(int xx,int yy); ~Point(); void Move(int x,int y); int GetX() {return X;} int GetY() {return Y;} private: int X,Y; }; #endif 指针 内存空间的访问方式 通过变量名访问 通过地址访问 地址运算符: 例: int var; 则 var 表示变量var在内存中的起始地址 指针变量的算术运算 指针与整数的加减运算 指针 p 加上或减去 n ,其意义是指针当前指向位置的前方或后方第 n 个数据的地址。 这种运算的结果值取决于指针指向的数据类型。 指针加一,减一运算 指向下一个或前一个数据。 例如:y=*px++ 相当于 y=*(px++) (*和++优先级相同,自右向左运算) 动态存储分配 堆对象 堆对象是在程序运行时根据需要随时可以被创建或删除的对象; 当创建堆对象时,堆中的一个存储单元从未分配状态变为已分配状态; 当删除堆对象时,存储单元从分配状态又变为未分配状态,可供其他动态数据使用。 new 和 delete new 运算符 动态创建对象数组举例 浅拷贝与深拷贝 浅拷贝 实现对象间数据元素的一一对应复制。 深拷贝 当被复制的对象数据成员是指针类型时,不是复制该指针成员本身,而是将指针所指的对象进行复制。 字符串 C语言中字符串的表示 C++中的string类 C++中预定义了string类,提供了对字符串进行处理的所有操作。 字符串构造 字符操作 输入输出操作 字符串赋值 字符串的连接 字串查找 字符串的比较 字符串的替换 字符串的插入 字符串的删除 string类的构造函数 a) string(); //生成一个空字符串s b) string(str) //拷贝构造函数 生成str的复制品 c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值 d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值 e) string s(cstr) //将C字符串作为s的初值 f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。 g) string s(num,c) //生成一个字符串,包含num个c字符 h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 string类的字符操作 const char operator[](int n)const; const char at(int n)const; char operator[](int n);//返回字符串中第n个字符的位置 char at(int n);//同运算符[]相同,但提供范围检查 const char *data()const; //返回一个非null终止的c字符数组 const char

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档