首页 > 解决方案 > 在函数中使用多个指针

问题描述

他们如何使用函数比较中的指针。

我无法理解。

有人可以解释一下吗。

功能:-

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/

标签: pointers

解决方案


  1. (Box *)b它是从 void 到 Box 结构的转换类型。
  2. (*(Box *)b).d这是对 Box 结构指针的取消引用。因此,您可以将结构作为实例处理,然后将结构的字段值作为b.d. 另一种选择可能是使用指针并避免取消引用:b->d

最后,比较函数执行:(d w) - (d w)'。如果结果为 0,则比较表明两个结构具有相同的值。

PD。在(2)处:不要忘记您将参数作为指针接收,并且此实现将其取消引用为(*b).d


推荐阅读