pointers - 在函数中使用多个指针
问题描述
他们如何使用函数比较中的指针。
我无法理解。
有人可以解释一下吗。
功能:-
int compare (const void *a, const void * b)
{
return ( (*(Box *)b).d * (*(Box *)b).w ) -
( (*(Box *)a).d * (*(Box *)a).w );
}
链接:https ://www.geeksforgeeks.org/box-stacking-problem-dp-22/
解决方案
(Box *)b
它是从 void 到 Box 结构的转换类型。(*(Box *)b).d
这是对 Box 结构指针的取消引用。因此,您可以将结构作为实例处理,然后将结构的字段值作为b.d
. 另一种选择可能是使用指针并避免取消引用:b->d
。
最后,比较函数执行:(d w) - (d w)'。如果结果为 0,则比较表明两个结构具有相同的值。
PD。在(2)处:不要忘记您将参数作为指针接收,并且此实现将其取消引用为(*b).d
推荐阅读
- redis - 水平扩展物联网传感器收集器服务器
- python - 使用 os.system 的 python 和 xclip 有时会冻结
- django - 在 django 中使用 post 请求时 /search/ 处的 MultiValueDictKeyError
- git - git grep:匹配中的“二进制文件”在哪里?
- google-sheets - 如何从 Excel 单元格中的给定字母数字数据中提取特定文本
- javascript - vue js - 作为v-model的嵌套对象不起作用
- python - Python-Turtle - 通过按住一个键来移动海龟:释放键移动海龟而不是停止它
- java - 将参数传递给 jpa/hibernates 中的非主键
- scala - 从 Gatling 的登录请求中获取令牌 ID
- xml - 在展平 JSON 数据后添加几个属性和命名空间前缀