gpt4 book ai didi

c - 这在 C 语言中意味着什么?

转载 作者:行者123 更新时间:2023-11-30 21:45:45 24 4
gpt4 key购买 nike

我目前正在学习qsort函数,遇到了compare函数:

int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}

我不明白为什么我们要使用*(int*)a。这是什么东西,有什么用?为什么使用 const void *a 而不是简单的 int a

最佳答案

由于 qsort 应该能够对任何类型的事物(包括结构)的数组进行排序,因此它传递(作为其比较方法的参数)一个指向每个要比较的事物的指针。这些可以是任何东西,因此使用的类型是“void *”,它可以是指向任何东西的指针。然后,您的比较方法应该将该指针强制转换为正确类型的指针(在本例中为 int * 因为您正在比较两个整数。然后您取消引用该强制转换指针以比较指向的值,因此 *(int *)

关于c - 这在 C 语言中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36408977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com