我已经编写了一个函数来查找 3 个指针指向的 3 个变量中的最小值,并且在函数调用之后我想要更新指向 min 的指针。价值。
为了实现这一点,我使用了指向指针的指针。我可以使用对指针变量的引用而不是指向指针(双指针)的指针来使代码干净吗?
int findRange(int p1,int p2, int p3)
{
return max(max(abs(p1-p2),abs(p2-p3)),abs(p3-p1));
}
int** findMin( int **p1,int **p2,int **p3)
{
int **m = p1;
if (**m > **p2) m = p2;
if (**m > **p3) return p3;
return m;
}
int main()
{
struct _a{
int a,b,c;
} result;
int a[]={2, 10, 15, 24, 26,-1};
int b[]={0, 9, 12, 20,-1};
int c[]={10, 18, 22, 30,-1};
int i=0;
int *p1=a,*p2=b,*p3=c;
int min=INT_MAX;
int **t;
while((*p1 != -1)&&(*p2!=-1)&&(*p3!=-1))
{
int range=findRange(*p1,*p2,*p3);
if(range<min){
result.a=*p1;
result.b=*p2;
result.c=*p3;
min=range;
}
t=findMin(&p1,&p2,&p3);
(*t)++;
}
(*t)--;
cout<<result.a<<"'"<<result.b<<"'"<<result.c<<"' range="<<min<<endl;
return 0;
}