C++ 指针与局部变量的关系
这就是我完成的任务C++ 指针与局部变量的关系,c++,C++,这就是我完成的任务 编写一个C++函数,它接受整数数组和数组大小,并发现: A.数组中元素的总和 B数组元素的平均值 C数组中的最小值和最大值 在主程序中,使用动态内存分配和调用声明一个由10个整数组成的数组 上述功能。在主屏幕中显示功能的输出。(使用电话 输出值的参考) //用户定义函数“func” void func(int arr[],int size,int*sum,int*avg,int*min,int*max) { *总和=0; *min=arr[0]; *max=arr[0]; *
编写一个C++函数,它接受整数数组和数组大小,并发现: A.数组中元素的总和 B数组元素的平均值 C数组中的最小值和最大值 在主程序中,使用动态内存分配和调用声明一个由10个整数组成的数组 上述功能。在主屏幕中显示功能的输出。(使用电话 输出值的参考)
//用户定义函数“func”
void func(int arr[],int size,int*sum,int*avg,int*min,int*max)
{
*总和=0;
*min=arr[0];
*max=arr[0];
*平均值=0;
//求和
对于(int i=0;iarr[i])
*最小值=arr[i];
}
//最大值的计算
对于(int i=0;i
因此,您的函数声明将更改为
func(int arr[], int size, int &sum, int &avg, int &min, int &max)
在内部,您可以直接使用变量,如min
、max
、avg
等
总的来说,你得打电话给我
func(arr, size, sum, avg, min, max);
最后,我建议您创建局部变量,执行其中的所有计算,并最终将值分配给传递的引用(在大多数情况下,这可能有点优化)。要减少解引用混乱,请使用局部变量进行计算,并在完成后写入参数
例如:
void sum(const std::vector<int>& numbers, int* result)
{
int total = 0;
for (auto i: numbers)
{
total += i;
}
*result = total;
}
无效和(常量标准::向量和数字,整数*结果)
{
int-total=0;
用于(自动i:数字)
{
总数+=i;
}
*结果=总数;
}
除了可读性之外,这还有几个其他好处:
- 它更快,因为不需要通过间接寻址不断地读写(在这方面,引用和指针一样糟糕)
- 如果有东西抛出异常,它会保留out参数不修改
void sum(const std::vector<int>& numbers, int* result)
{
int total = 0;
for (auto i: numbers)
{
total += i;
}
*result = total;
}