首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-02-24 
是书上错了吗?好奇怪的写法...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);
}

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

但是书上是
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(&amp;a,&amp;b));
getchar();
}
……

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

热点排行