重学C++ 函数指针
来源:互联网 发布:ai做淘宝照片 编辑:程序博客网 时间:2024/06/10 01:44
//源程序来自《C++ 程序员教程》
数组名实际上就数组的第一个元素在内存中的地址。
函数名实际上也是执行这个函数的任务的代码在内存中的起始地址。
#include<iostream>using std::cout;using std::cin;using std::endl;#include<iomanip>using std::setw;//函数列表void selectionSort(int [],const int,bool (*)(int,int));void swap(int* const,int* const);//交换bool ascending(int,int);//升序bool descending(int,int);//降序int main(){const int arraySize=10;int order;int counter;int a[arraySize]={2,3,4,5,56,42,23,78,1,234};cout<<"Enter 1 to sort in ascending order,\n"<<"Enter 2 to sort in descending order:";cin>>order;for(counter=0;counter<arraySize;counter++){cout<<setw(4)<<a[counter];}if(order==1){selectionSort(a,arraySize,ascending);cout<<endl<<"ascending:\n";}else{selectionSort(a,arraySize,descending);cout<<endl<<"descending:\n";}for(counter=0;counter<arraySize;counter++){cout<<setw(4)<<a[counter];}cout<<endl;return 0;}void selectionSort(int work[],const int size, bool (*compare)(int,int)){int smallestOrLargest;for(int i=0;i<size-1;i++){smallestOrLargest=i;for(int index=i+1;index<size;index++){if(!(*compare)(work[smallestOrLargest],work[index])){smallestOrLargest=index;}}swap(&work[smallestOrLargest],&work[i]);}}void swap(int *const element1Ptr,int *const element2Ptr){int hold=*element1Ptr;*element1Ptr=*element2Ptr;*element2Ptr=hold;}bool ascending(int a,int b){return a<b;}bool descending(int a,int b){return b<a;}
- 重学C++ 函数指针
- 重学C++ 函数指针数组
- 重学C语言之指针
- 重学C++Primer笔记9---回调函数与函数指针的应用
- 重学c++:函数和数组
- 指针与数组【重学C之五】
- 重学C语言
- 重学C语言
- 【重学《C++Primer第四版》】第七章、函数
- 函数与程序结构【重学C之四】
- java基础改学C++(六)指针(2)函数的指针、指针的指针
- C语言指针导学(4)——分清函数指针和指针函数
- C语言指针导学(4)——分清函数指针和指针函数收藏
- C语言指针导学(4)——分清函数指针和指针函数
- C语言指针导学(4)——分清函数指针和指针函数
- C语言指针导学(4)——分清函数指针和指针函数
- C语言指针导学(4)——分清函数指针和指针函数
- C语言指针导学(4)——分清函数指针和指针函数
- CCNA实验三:配置EIGRP
- jQuery左侧菜单效果
- Redis应用场景
- C、C++最大值、最小值初始化
- 两道腾讯面试题
- 重学C++ 函数指针
- 关于curl命令行下载页面为空的问题
- 友元函数
- NYOJ - 阶乘因式分解(二)
- android应用 获取本地指定类型文件 的两种最优方法
- jQuery获取浏览器中的分辨率
- java中取出表单的字段名
- jQuery动态创建节点元素
- 对于我自己来说,看Matlab程序的问题