以 C/C++ 为单位的数组中最小值的地址

Address of minimum value in an array in C/C++

本文关键字:数组 最小值 地址 为单位 C++      更新时间:2023-10-16

刚开始C/C++一周。我有一个函数,它将指向数组的指针作为参数。在函数内操作此输入数组会导致另一个(全局定义的(数组发生变化。 我需要查找并返回这个(全局定义的(浮点数组中最小值的地址。在C++中,我可以用std::min_element()相对容易地做到这一点,因为这返回了一个迭代器。有什么方法可以在 C 中做到这一点吗?我可以编写一个循环来查找数组中的最小值,但不确定如何访问其地址?这是(pseduo(代码。

globalArray[100] = {0}
float *DoSomething(float *array)
{
if (conditionMet == 1)
{ Do something to array that modifies globalArray;}
float min;
min = globalArray[0];
for (int i = 0; i <100; i++)
{
if (globalArray[i] < min)
min = globalArray[i];
}
return &min;
}

您需要保留一个额外的变量来跟踪索引。

min = globalArray[0];
int minIndex = 0;
for (int i = 0; i <100; i++)
{
if (globalArray[i] < min) {
min = globalArray[i];
minIndex = i;
}
}
return &globalArray[minIndex];

或者,您可以使用额外的变量来跟踪指针。

min = globalArray[0];
float* minPointer = globalArray;
for (int i = 0; i <100; i++)
{
if (globalArray[i] < min) {
min = globalArray[i];
minPointer = globalArray + i;
}
}
return minPointer;