表达式*(int*)是什么意思?

0 c++ pointers

int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}
Run Code Online (Sandbox Code Playgroud)

我不明白表达*(int*)a

Som*_*ude 8

一个void *指针是一个通用的指针,它可以指向任何东西,但因为编译器不知道到底是什么它是指向你要告诉究竟它所指向的编译器.这个"告诉"是演员的作用:(int *) a告诉编译器a实际指向一个int.

然后代码只是使用解引用运算符(一元*)来获取where a指向的值并在正常的减法表达式中使用它.