基于的课件第八节_第1页
基于的课件第八节_第2页
基于的课件第八节_第3页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TSINGHUA UNIVERSITY函数指针的使用设计程序,随机生成 8 个 1099 之间的整数,调用 stdlib 库的 qsort 函数对其进行排序qsort 函数原型void qsort( void * base, unsigned int number_of_elements, unsigned int size_of_elements, int ( * compare )( const void *, const void * ) ); 调用时需按照下述格式实现自己的比较函数 int ( * compare )( const void *, const void * );比较函数

2、示例int MyCompareFunc( const void * e1, const void * e2 );比较函数必须返回正负值(一般为正负 1)或 0 ,规则按照题目要求自定义TSINGHUA UNIVERSITY函数指针的使用:main.cpp#include #include using namespace std;#include arrmanip.h#define NUMBER_OF_ELEMENTS 8int DoCompareObject( const void * e1, const void * e2 );TSINGHUA UNIVERSITY函数指针的使用:main.

3、cppint main() int aNUMBER_OF_ELEMENTS; GenerateIntegers( a, NUMBER_OF_ELEMENTS ); cout Array generated at random as follows: n; PrintIntegers( a, NUMBER_OF_ELEMENTS ); qsort( a, NUMBER_OF_ELEMENTS, sizeof(int), DoCompareObject ); cout After sorted: n; PrintIntegers( a, NUMBER_OF_ELEMENTS ); return 0

4、;int DoCompareObject( const void * e1, const void * e2 ) return CompareInteger( *(const int *)e1, *(const int *)e2 );TSINGHUA UNIVERSITY函数指针的使用:arrmanip.hvoid GenerateIntegers( int a, unsigned int n );int CompareInteger( int x, int y );void PrintIntegers( int a, unsigned int n );TSINGHUA UNIVERSITY函

5、数指针:arrmanip.cpp#include using namespace std;#include random.h#include arrmanip.hstatic const unsigned int lower_bound = 10;static const unsigned int upper_bound = 99;void GenerateIntegers( int a, unsigned int n ) unsigned int i; Randomize(); for( i = 0; i y ) return 1; else if( x = y ) return 0; el

6、se return -1;void PrintIntegers( int a, unsigned int n ) unsigned int i; for( i = 0; i n; i+ ) cout setw(3) ai; cout endl;TSINGHUA UNIVERSITY函数指针的使用函数指针的赋值同类型函数指针可以赋值,不同类型则不能赋值如何确定函数指针类型是否相同:函数参数与返回值不完全相同函数指针类型:用于区分不同类型的函数指针typedef int ( * COMPARE_OBJECT )( const void * e1, const void * e2 );前面添加 typedef 关键字,保证 COMPARE_OBJECT 为函数指针类型,而不是函数指针变量可以像普通类型一样使用函数指针类型定义变量:COMPARE_OBJECT compare = DoCompareObject;qsort 函数的简明书写方法void qsort( v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论