当前位置:编程学习 > C/C++ >>

C++ 问题 C++ 问题

函数声明:

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的值不会改变

表示指针所指向的值不会改变,一般是为了保护数据

上一个:c++怎么学好
下一个:C++语言好学吗?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,