int compar(const void *a,const void *b)如何理解

来源:百度知道 编辑:UC知道 时间:2024/07/02 10:50:55
int compar(const void *a,const void *b){
int *aa=(int *)a,*bb=(int *)b;
if(*aa>*bb) return 1;
if(*aa==*bb) return 0;
if(*aa<*bb) return -1;
}
const void *a为什么这样写
int *aa=(int *)a又要转为int ?

const表示常量,这里是为了防止指针指向的内容被意外修改,所以设置为“只读”,即常量指针指向的区域不可修改。
因为a的类型为void*,所以*a与*b是无法比较的,经过转换之后,*aa即为int型可以用来比较。