C++ 问题 C++ 问题
函数声明:int compare(const void* a, const void* b);
请问变量a、b前面的 const void* 是什么意思呀?有什么作用呀?
追问:那void呢
函数声明:int compare(const void* a, const void* b);
请问变量a、b前面的 const void* 是什么意思呀?有什么作用呀?
追问:那void呢
答案:const是常量限定修饰字、void是空类型、‘*’是指针运算符,const void *a 表示声明定义了a为一个空指针类型的变量。在compare的参数列表中,前面的const指示a指向的是不可修改的数据对象和表明它是输入参数,void *(即空指针类型,它是ANSI新标准新引增的一个类型,它可以用来指向一个抽象的类型的数据)则说明了那个是泛型功能的函数,可接受任意的内置基本类型(整数/字符/浮点)的参数,因为void *的数据可以无代价的强制转换到合适的原类型。const表示传入一个固定值,* a表示a是一个指针。为了保证程序健壮性,也就是说保证在compare函数内,不能修改a 级 b 指向的内存的数据此函数用来比较传入的两个值,void为返回类型(否),a,b可为任意类型。保证a b的值不会改变表示指针所指向的值不会改变,一般是为了保护数据