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

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);

智慧大石
浏览 72回答 3
3回答

小怪兽爱吃肉

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

aluckdog

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

潇湘沐

C语言中,这类的运算,结果是不确定的,在不同的机器上结果不相同。
打开App,查看更多内容
随时随地看视频慕课网APP