char *curloc,*endloc;什么意思
答案:2 悬赏:0 手机版
解决时间 2021-03-02 04:49
- 提问者网友:嘚啵嘚啵
- 2021-03-02 00:17
char *curloc,*endloc;什么意思
最佳答案
- 五星知识达人网友:鱼忧
- 2021-03-02 00:55
*(char**)a 就是(char*)a,之所以这么写,
是因为需要排序的数组的元素是 char*的
而快速排序的比较函数的参数是数组元素的地址
比如qsort调用函数compare(const void *a,const void *b)来比较list[0],list[1]的时候是这么调用的。
compare((const void*) &list[0],(const void*) &list[1]);
&list[i]实际上是char** 的类型,就是字符串的指针的引用(也可说指针),但是已经强制转换为void*类型
因此再实现函数众当然又需要强制转换为(char**)类型。
当然*(char**)a的第一个*就是为了的到字符串指针了。
在你这个函数众。其实将*(char**)a写成(char*)a 也是不会出现错误的,只是不太符合逻辑
是因为需要排序的数组的元素是 char*的
而快速排序的比较函数的参数是数组元素的地址
比如qsort调用函数compare(const void *a,const void *b)来比较list[0],list[1]的时候是这么调用的。
compare((const void*) &list[0],(const void*) &list[1]);
&list[i]实际上是char** 的类型,就是字符串的指针的引用(也可说指针),但是已经强制转换为void*类型
因此再实现函数众当然又需要强制转换为(char**)类型。
当然*(char**)a的第一个*就是为了的到字符串指针了。
在你这个函数众。其实将*(char**)a写成(char*)a 也是不会出现错误的,只是不太符合逻辑
全部回答
- 1楼网友:青尢
- 2021-03-02 02:20
任务占坑
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯