读书人

是书上错了吗?好奇怪的写法.解决方案

发布时间: 2012-02-24 16:30:38 作者: rapoo

是书上错了吗?好奇怪的写法...
int f(const void *p,const void *q)
{
return strcmp((char *)p,(char *)q);
}

我觉得应该是这样这写的吧...

但是书上是
int f(const void *p,const void *q)
{
return strcmp(*(char **)p,*(char **)q);
}
我这样运行还会出错,书上说是先用char**,然后用*来移走间接寻址的一层...搞不懂那为什么还会错呢?

[解决办法]
额 怎么写在于你传递的参数类型,如果说你传递的是char*那么就按照你的写法,如果传递的是char**那么就得按照书上的写法
[解决办法]

探讨

C/C++ code
#include<string.h>
#include<stdio.h>
int f(const void *p,const void *q)
{
return strcmp(*(char **)p,*(char **)q);
}
main()
{
char a='a',b='b';
printf("%d",f(&a,&b));
getchar();
}
……

[解决办法]
怎么觉得书上写的有点多此一举啊

读书人网 >C语言

热点推荐