求教const void指针问题
看到例子时有点看不懂,请教。
有函数
public int compare(const void* a,const void* b)
{
return strcmp(*(char**)a,*(char**)b);
}
请问
return strcmp(*(char**)a,*(char**)b);
与
return strcmp((char*)a,(char*)b);
有什么区别?
[解决办法]
return strcmp(*(char**)a,*(char**)b);
a/b 的类型是 char** a/b指向字符串指针的数组
与
return strcmp((char*)a,(char*)b);
a/b 的类型是char* a/b本身就是字符串的指针
[解决办法]
int compare(const void* a,const void* b)
{
return strcmp(*(char**)a,*(char**)b);
}
是
int compare(const char** a, const char** b)
{
return strcmp (*a, *b);
}
对 a 和 b 解引用才得到字符串