c++ - 表达式 *(int*)a 是什么意思?

标签 c++ pointers

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/

相关文章:

c++ - 我需要一个测试用例来证明我的算法/代码是错误的

c++ - 无法使用 Visual Studio 2010 调试 C++ BHO DLL

c - 为结构数组动态分配内存

objective-c - 如何将函数的结果作为宏变量传递?

c - 双链表显示函数中的段错误

c++ - 删除标准列表中的指针对象

c++ - 在 while 循环中重复函数调用

c++ - 计时器与事件 : which one is preferable for Asynchronous processing?

c++ - 如何在C++中将整数转换为字符

c - 在 C 中为非空 void* 指针赋值的正确方法应该是什么?