C++-第7章-指针-2007年-上半年-(2).ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机程序设计 顾 刚 计算机教学实验中心 阶段测验小结 题目属中等水平,基本上是做过的题目 100分有20人,占17% 70:27人,不及格:16人,不及格率过高 低于70分黄牌警告,各班干部拿出提高方案 尤其机自64班整体太差,整班补课? 有抄袭现象 最终考试形式与测验相似,注重实际编程能力 第7章 指针 指针是本课程三个难点之一 当然是C++程序设计的重要内容 需要同学们加倍集中精力 校园生活举例 到教务处办事 教务处应该有确切位置或地址 教务处 教学主楼1408室 一般称前者为逻辑地址,后者为物理地址 地址都有两种形式:西安交大 西安交通大学 西安市碑林区咸宁西路28号 物理地址与逻辑地址 物理地址一般由地理区域的序号编码构成 逻辑地址一般由有意义的机构或人名构成 人们常常喜欢采用逻辑地址 上海交通大学 上海市华山路1954号 因为逻辑地址简单、形象、易记 程序如何使用内存? 内存储器地址 逻辑地址向物理地址变换 C++程序存储的小结 地址是存放信息数据的内存单元的编号(编码) C++程序是通过名字(变量或函数名)来使用内存。这样做既直观,又方便 为某个变量或者函数分配存储器空间的工作由编译程序完成 存放在内存中的函数和数据都至少有一个地址 我们关心的是首地址:第一个字节的地址 通过地址使用内存较为快捷 取地址运算 指针的概念 用来存放内存地址的变量叫作指针变量,简称指针 指针是C++语言中的一种数据类型,是专门用来处理地址码集合的。又叫地址类型、指针类型, 由于“首地址”可以是整数变量的首地址,也可以是双精度变量首地址,指针变量也分为不同的类型 指针是一个变量,应遵循“先声明,后使用”的原则 指针变量声明 指针变量声明语句格式: 类型指示符 *指针变量名; 求地址运算符 取内容运算符* 数据、地址和指针的关系 两变量交换函数 分析不交换的原因 分析交换的原因 指针运算 指针的赋值运算 将一个指针赋值给另一个指针,结果是两个指针指向一个相同地址的单元 例如:int a,*ip,*jp; jp=a; ip=jp; 结果是ip和jp都指向整数变量a 指针的关系运算 表示所指变量在内存中的位置关系 例如:float a,b,*ip,*jp ip=a; jp=b; ipjp 结果是真或假? 同样可以比较 ip = = jp 真或假? 指针的算术运算 只进行加减算术运算,完成指针上下移动,对不同的类型,移动的单位长度不同 指针算术运算符:++、--、、+、- 例如:double pi,*ptr=pi; ptr++; 表示指针ptr下移一个地址 指针+整数表达式 例如: ptr+3 含义? 指针-整数表达式 例如: ptr-3 含义? 指针与数组 指针指向整型数组示例 指针指向字符数组示例 指针处理数组的特点 字符串复制函数 字符串复制函数的实现 编写一个函数将数组清零 数组清零函数的实现 动态存储分配 new和delete的使用 利用动态数组来求斐波那挈数列的前n项 字符串比较函数 部分字符串比较函数 选择排序方法 选择排序实现 作业 纸本作业 第7章第3题 第7章第6题 实验作业 第7章第1题 第7章第2题 第7章第4题 第7章第5题 #include iostream.h void clear_array(float *ptr,int n) { float *qtr=ptr+n; while(ptrqtr) { *ptr=0; ptr++; } } void main() { float a[10]={1,2,3,4,5,6,7,8,9,10}; int i; for(i=0;i10;i++) cout‘\t’a[i]; coutendl; clear_array(a,10); for(i=0;i10;i++) cout‘\t’a[i]; cout\n; } 程序中使用的变量、数组和函数必须先声明后使用,编译系统根据声明语句开辟内存空间,因此数据占用的存储空间是固定的。这种内存储器分配方法被称为静态存储分配 动态存储分配(dynamic allocation)是在程序运行过程中随机获得内存存储空间的方法 C++用运算符new和delete实现动态存储分配 运算符new用来申请所需的内存 指针 = new 类型(初值); 也可为数组申请内存: 指针 = new 类型[元素数]; 运算符delete用于释放先前申请到的存储块 delete 指针; 若要释放数组的空间,必须放一个空的方括号[]在操作符delete和指向该类对象数组的指针之间 int *p = new int

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档