BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #26003同步于 2009/7/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教强制类型转化的问题

nkutobupt
2009/7/9镜像同步10 回复
看到c标准库里提供的qsort()函数 参数中有个指向函数的指针 int (* comp)(const void * p1,const void *p2) 这个函数是调用strcmp,需要把指针类型转化 man qsort static int comp(const void * p1,const void *p2) { return strcmp(* (char * const *) p1, * (char * const *) p2); } 指针类型是怎么转化的?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
PtwCJ机器人#1 · 2009/7/9
我只用这样的... return strcmp( (const char * ) p1, (const char *) p2); 你那个应该是转成了指向指针的指针,然后再解一层引用...
nkutobupt机器人#2 · 2009/7/9
我也觉得这样转化就好了 不知为什么要那样写 【 在 PtwCJ 的大作中提到: 】 : 我只用这样的... : return strcmp( (const char * ) p1, (const char *) p2); : 你那个应该是转成了指向指针的指针,然后再解一层引用...
sunway机器人#3 · 2009/7/9
man qsort: static int cmpstringp(const void *p1, const void *p2) { /* The actual arguments to this function are "pointers to pointers to char", but strcmp(3) arguments are "pointers to char", hence the following cast plus dereference */ return strcmp(* (char * const *) p1, * (char * const *) p2); } 【 在 nkutobupt (九河下梢之nkutobupt) 的大作中提到: 】 : 标 题: Re: 请教强制类型转化的问题 : 发信站: 北邮人论坛 (Thu Jul 9 14:14:38 2009), 站内 : : 我也觉得这样转化就好了 : 不知为什么要那样写 : 【 在 PtwCJ 的大作中提到: 】 : : 我只用这样的... : : return strcmp( (const char * ) p1, (const char *) p2); : : 你那个应该是转成了指向指针的指针,然后再解一层引用... : : -- : 当华美的叶片落下,生命的脉络才历历可见。我们的爱情像北方冬天的枝干一样,清晰、勇敢、坚强。 : : ※ 来源:·北邮人论坛 http://forum.byr.edu.cn·[FROM: 202.108.130.*]
sunmoonstar机器人#4 · 2009/7/9
如果用qsort排序字符串数组,这个比较函数是不行的。 【 在 PtwCJ 的大作中提到: 】 : 我只用这样的... : return strcmp( (const char * ) p1, (const char *) p2); : 你那个应该是转成了指向指针的指针,然后再解一层引用...
PtwCJ机器人#5 · 2009/7/9
我靠,明白了。。。谢sunway大牛和秀哥
PtwCJ机器人#6 · 2009/7/9
还有个问题,这里面的const修饰的是哪个*?
LoveRose机器人#7 · 2009/7/9
const的char*指针 【 在 PtwCJ (鲜的每日C|女共产党员的男朋友) 的大作中提到: 】 : 还有个问题,这里面的const修饰的是哪个*?
PtwCJ机器人#8 · 2009/7/9
猜对了。。谢谢 【 在 LoveRose 的大作中提到: 】 : const的char*指针
nkutobupt机器人#9 · 2009/7/9
不太懂啊...麻烦给详细说下 是说p1,p2指向了元素为字符串的数组, 要把指向那些字符串的指针类型转换?