第6章 数组指针及字符串.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++语言程序设计 第6章 数组、指针与字符串 数组的声明与使用 数组的声明:int b[10]; int a[5][3]; 数组的使用:数组名[下表表达式1][下表表达式2]… 例6-1,p189 数组的存储与初始化 数组的存储:在内存中是顺序的、连续地存储 一位数组存储:按下标从下到大; 多维数组存储:行优先-先存完第一行再存第二行… 数组的存储与初始化 数组的初始化:是指在声明数组时给部分或全部元素赋值 int a[3] = {1, 1, 1}; int a[] = {1, 1,1};//列出全部元素可以不指定数组维数 float fa[5] = {1.0, 2.0, 3.0} 数组作为函数参数 使用数组名传递数据时,传递的是地址 实参数组的元素个数不应该少于形参数组的元素个数(往往不指定第一维的大小) 例6-2,p193 对象数组 声明语法:类名 数组名[常量表达式]; 使用语法:数组名[下表表达式].成员名 例6-3,p194 内存空间的访问方式 指针是一种数据类型 图6-5, 6-6,p199 指针变量的声明 具有指针类型的变量称为指针变量。指针变量是用于存放内存单元地址的 语法:数据类型 *标识符; 例如: int *ptr; 与地址相关的运算“*”和“” *:表示取内容 :表示取地址 例如p201 指针的赋值 语法:存储类型 数据类型 *指针名 = 初始地址; 数组名称是一个不能被赋值的指针,即指针常量 例6-5 指向常量的指针和指针类型的常量区别 指针运算 指针可以参与算术、关系和赋值运算 图6-8,p204 0专用于表示空指针,是一个不指向任何有效地址的指针 用指针处理数组元素 指针和数组可以等价使用 例6-7,p205 指针数组 语法:数据类型 *数组名[下表表达式]; 例6-8,p207 指针数组和二维数组的区别,图6-9,p208 用指针作为函数参数 以指针作为形参在调用时实参将值传递给形参,也就是使实参和形参指针指向同一内存地址 例6-10,p209 指针型函数或称指针函数 当一个函数的返回值是指针类型时,这个函数就是指针型函数 本质上是指针 语法:数据类型 *函数名(参数表){函数体} 指向函数的指针或称函数指针 本质上是函数 函数名表示函数的代码在内存中的起始地址 函数指针是专门用来存放函数代码首地址的变量 语法:数据类型 (*函数指针名)(性参表) 例6-11,p212 对象指针 即指向对象的指针 函数成员不在每一个对象中存储副本 例如p213 对象指针 this指针 指向非静态成员的指针:类型说明符 类名::指针名; 或类型说明符 (类名::*指针名)(参数表); 例6-13,p216 对象指针 指向类的静态成员的指针:可以直接访问,因为静态成员不依赖于具体对象 例6-14,p217 动态内存分配 通过new来进行存储单元的分配,又称为堆对象 如果申请失败会抛出异常 例如int *p = new int(2); //初始值为2 例6-16,p220 动态内存分配 通过new也可以创建数组类型的对象,语法:new 类型名[数组长度] 例如int *p = new int[10](); //申请10个空间并且赋初值0 例6-17,p221 动态内存分配 通过new也可以创建多维数组,语法:new 类型名[第1维长度][第2维长度]…; 例如float (*cp)[25][10]; cp = new float[10][25][10]; 例6-19,p223 用vector创建数组对象 C++标准库提供了动态数组vector,这是一个模板 语法:vector元素类型 数组对象名(长度) 用vector定义的数组对象的所有元素都会被初始化 用vector创建数组对象 vector数组的初始值也可以自己定义,但所有元素均相同:vector元素类型 数组对象名(数组长度, 元素初值) 例6-20,p225 深复制与浅复制 默认复制构造函数完成的是浅复制,即不同对象指针指向同一个内存区 例6-21,p226 自定义复制构造函数才能完成深复制,即不同对象指针指向不同的内存区,例6-22,p228 用字符数组存储和处理字符串 这是一种用数组来表示字符串的方法 字符串中,每个字符占一个字节,在末尾加’\0’作为结尾标记 例如,p230 string类 存放于头文件string中 构造函数原型参见p231 string类的操作符参见表6-1 string类的常用成员函数参见p232 例6-23,p233 指针与引用 指针是一种底层的机制,引用则是一种较高层的机制 引用只能在初始化时指定被引用的对象,其后就不能更改 用引用实现的功能用指针都可以实现 例如p242 指针的安全性隐患及其应对方案 地址安全性:指针可以

文档评论(0)

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

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

1亿VIP精品文档

相关文档