为了账号安全,请及时绑定邮箱和手机立即绑定

想知道用法和每个语句的意思,可以详解吗?

想知道用法和每个语句的意思,可以详解吗?

C
智慧大石 2022-11-17 15:11:27

qsort 里的cmp函数
int cmp(const void *a,const void *b)//??
{
return *(int *)a>*(int*)b?1:-1;//这里知道是问号表达式,但是看不懂??
}
还有qsort
qsort(a, n, sizeof(a[0]), cmp);

查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1588条经验 获得超1个赞

*(int *)a 这个意思是 将 void 指针类型的变量a 强制转换为 int指针类型,然后再取值
同理,*(int*)b是同样的意思。
那么整行代码的意思就是,将指针变量a指向的整型数值 与 指针变量b 指向的整型数值比较,如果大于,则返回1, 如果等于或者小于,则返回 -1
(ps:望采纳)

查看完整回答
反对 回复 2022-11-22
?
aluckdog

TA贡献1559条经验 获得超6个赞

return是返回比较后的判断结果,成立就是1,不成立就是-1.
qsort函数是对指定的数组a[],进行排序,你这个是升序。

查看完整回答
反对 回复 2022-11-22
?
潇湘沐

TA贡献0条经验 获得超6个赞

C语言中,这类的运算,结果是不确定的,在不同的机器上结果不相同。

查看完整回答
反对 回复 2022-11-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信