int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
我不明白表达式 *(int*)a
?
最佳答案
A void *
pointer 是一个通用指针,它可以指向任何东西,但是由于编译器并不确切地知道它指向什么,所以您必须告诉编译器它到底指向什么。这种“讲述”是 Actor 所做的:(int *) a
告诉编译器 a
实际上指向一个 int
.
然后代码只是使用取消引用运算符(一元 *
)来获取 a
的值在正常的减法表达式中指向并使用它。
关于c++ - 表达式 *(int*)a 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33258260/