传入参数为void * 形式时为何需要在指针前加&

图片说明
图片说明

state本身即为指针,为何调用的时候还要加&?

3个回答

&不是修饰state的是修饰后面的数组元素的

就是单纯的取地址,传参

void *可以传任意的指针,这里lcu_order[i]是一个指针,但是调用的时候需要传的是这个指针的指针。所以还要 &。
打一个比方,参照系统库函数qsort的最后一个参数cmp,传入一个函数指针,作为比较器,对数组排序。
那么这个函数的原型是int cmp(const void *, const void *)
如果你比较的是一般的数组,那么void *是一般的指针。
如果你比较的是指针构成的数组,那么void *就是数组的数组了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐