引用与动态内存分配.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 6章 指针,引用与动态内存分配 6.1 选择排序算法 6.2 指针类型 6.3 指针与动态内存分配 6.4 引用类型 6.5 程序实例 6.1 选择排序算法 C++语言也为用户对于变量所占空间的地址提供了进行操作的机制,这就是指针类型和引用类型。指针和引用不是一种独立的数据类型,而是一种导出数据类型。指针类型也是C语言和Pascal语言的重要类型,而引用类型是C++语言中新的重要类型,在Java语言和C#语言等一些新的语言中,引用类型取代了指针类型 排序的任务是把已经存在一个数组里的n 个数按从大到小的顺序排列,可以采用多种不同的方法实现,选择排序算法的思路简单,容易理解,每次总是从无序的序列中选出最大者,交换到序列的左端,于是,无序的序列越来越短,经过n-1步,达到排序的目的。 6.1 选择排序算法 void ssort(float *, int ); //原型说明 void main(void){ int i, seed, n=20; coutendlseed= ; cinseed; coutendl; srand(seed); float list[20], *pf; for(i=0; in; i++) { list[i] = rand( ); coutsetw(8)list[i]; if ((i+1)%8==0) coutendl;} i=0; coutendl; pf=list[0]; ssort (pf,n); while ( in ) { coutsetw(8)list[i]; i++; if (i% 8 == 0) coutendl; } coutendl; } 6.1 选择排序算法 运行结果: seed=6523 21339 28822 26220 8712 18120 1280 27491 8647 7137 2030 24101 20505 4452 26942 10989 29919 27130 20996 17227 13559 29919 28822 27491 27130 26942 26220 24101 21339 20996 20505 18120 17227 13559 10989 8712 8647 7137 4452 2030 1280 6.1 选择排序算法 这个程序重点是介绍函数ssort( ) 和swap1( ) 的设计, 主函数做了三件事: 1)为长度为n的数组list[n]输入n个随机数,作为排序算法处理的对象 2)调用函数ssort()进行排序。 3)把经过排序的数组list[20]的值输出。 函数swap1( ) 的定义中使用了指针类型的参数。参数a,b 是float 型的指针变量,即它们的值应是浮点型变量的地址。 6.1 选择排序算法 在函数swap1( )中使用了*a 和*b,这里符号‘*’不是乘法运算符,而是表示指针变量(a 或b)所指向的那个变量。 例如: int n=4, *p; p=n; *p++; 表示有整型变量n,和整型指针变量p,用n 表示变量n 的地址,p=n 使指针p 指向变量n,而这时*p 正是表示变量n,*p++相当于n++ ‘’和‘*’是一对用于指针操作的互逆的单目运算符,(在这里‘’不是“引用”的意思)。n 表示变量n 的地址,而*p 表示指针p 指向的变量或该变量的值。 6.1 选择排序算法 函数swap1(float *a,float *b){…}, 与5.2.5中介绍的swap(int a, int b){…} 函数作一比较,虽然它们都达到交换两个变量内容的目的,但采用的方式却是不同的。 在swap1( ) 中有两个指针型参数,属于赋值形参,在调用时创建两个新的指针变量a 和b,把实参表达式计算的结果地址赋给a 和b,从而使指针a 和b 指向相应的变量。而在swap( )中形参a,b 为引用型,它是在调用时直接由实参的变量代替a,b 参加swap( )函数的函数体操作。 6.1 选择排序算法 函数ssort( ) 是一个用于对m 个浮点数组进行排序的函数,其参数为 float 型指针和int 型整数。前者指明数组的首地址,后者为数组中元素的个数,执行结果是把这个数组中的浮点数按从大到小的顺序排列好。 把n个数排好次序可以有许多种不同的算法,这个函数是每次把尚未排好的元素中的最大元素选出,移到左端,最终形成从大到小的排列,故被称为选择排序算法。 6.2 指针类

文档评论(0)

3377713 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档