书中所说是为函数指针,并且将函数指针作为函数参数,请解释一下下面函数的意思
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 18:29:08
书中所说是为函数指针,并且将函数指针作为函数参数,请解释一下下面函数的意思
#include
#include
#include
using namespace std;
int f(const void *a,const void *b)
char c[3][4]={"cab","cap","can"};
void main()
{
qsort((void*)c,3,4,f);//讲一下这个排序函数各个参数的类型和意义,书上书第四个参数应该是函数指针,但是这个f好像不是吧?
for(int i=0;i
#include
#include
#include
using namespace std;
int f(const void *a,const void *b)
char c[3][4]={"cab","cap","can"};
void main()
{
qsort((void*)c,3,4,f);//讲一下这个排序函数各个参数的类型和意义,书上书第四个参数应该是函数指针,但是这个f好像不是吧?
for(int i=0;i
Note1:
f本来应该是这样:
int f(const char**a,const char**b) { return strcmp(a,b); }
a,b都指向string,而string在C是 char*,所以a,b都是char**.
strcmp是以字典顺序比较 *a和 *b 这两个string.*a 前於 *b 就返回 -1,相等就0,後於就1.
但为了合於qsort的规格,所以a,b只好先写成 const void* 然後再转型.
要求 const void* 的好处是 a,b 可以指向任何型态的对象,
Note2:
指向f的函数指针是 &f,但可以简写为f.
Note3:
qsort的第一参数是 void*,意思是指向一个array.
第二参数是说明array有几格,
第三参数是说明array中每格占几个byte.
qsort的末参数是个函数指针,由qsort的调用者提供,负责比较array中的某两格的大小.第二参数是说明array有几格,
f本来应该是这样:
int f(const char**a,const char**b) { return strcmp(a,b); }
a,b都指向string,而string在C是 char*,所以a,b都是char**.
strcmp是以字典顺序比较 *a和 *b 这两个string.*a 前於 *b 就返回 -1,相等就0,後於就1.
但为了合於qsort的规格,所以a,b只好先写成 const void* 然後再转型.
要求 const void* 的好处是 a,b 可以指向任何型态的对象,
Note2:
指向f的函数指针是 &f,但可以简写为f.
Note3:
qsort的第一参数是 void*,意思是指向一个array.
第二参数是说明array有几格,
第三参数是说明array中每格占几个byte.
qsort的末参数是个函数指针,由qsort的调用者提供,负责比较array中的某两格的大小.第二参数是说明array有几格,
书中所说是为函数指针,并且将函数指针作为函数参数,请解释一下下面函数的意思
定义一个返回值是指向函数的指针且有一个指向函数的指针作为参数的函数?
为什么要把指向指针的指针作为函数的参数传递?
若希望通过参数将函数值带出函数体,则参数必须定义为指针类型
“指针变量作为函数参数的作用:将一个变量的地址传送到另一个函数中”这句话怎么理解?
编写用指针变量作为函数参数求数组的最小值、最大值和平均值的函数(下面是我编的,请问有什么问题)
编写用指针变量作为函数参数求数组的最小值、最大值和平均值的函数
如何定义函数指针,下面这个函数的如何定义他的函数指针?
指针与引用的区别,引用作为函数参数时的用法?
指针变量 参数函数 值传递
为什么定义函数指针指向函数 该指针的值不为函数名的值
定义一个函数,函数的参数为一维数组(用指针表示)函数返回数组元素平均值