Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有指针和引用的简单函数 所以我有一个C++课程的作业。而且(和所有人一样)我无法理解函数中的指针和引用_C++_Arrays_Pointers - Fatal编程技术网

带有指针和引用的简单函数 所以我有一个C++课程的作业。而且(和所有人一样)我无法理解函数中的指针和引用

带有指针和引用的简单函数 所以我有一个C++课程的作业。而且(和所有人一样)我无法理解函数中的指针和引用,c++,arrays,pointers,C++,Arrays,Pointers,我将创建一个原型函数: const double* avr(const double* arr, size_t size, double& average) 其中: arr-是指向主函数中声明的数组的指针 size-是数组的大小 average-是一个参考值,稍后应使用数组中的平均值(arr[]) 函数的要点是用数组元素的平均值注入变量average,然后返回指向数组元素的指针,该元素最接近该平均值 例如,下面的程序: double arr[] = {1,2,3,4,5,7}; siz

我将创建一个原型函数:

const double* avr(const double* arr, size_t size, double& average)
其中:

arr
-是指向主函数中声明的数组的指针

size
-是数组的大小

average
-是一个参考值,稍后应使用数组中的平均值(
arr[]

函数的要点是用数组元素的平均值注入变量average,然后返回指向数组元素的指针,该元素最接近该平均值

例如,下面的程序:

double arr[] = {1,2,3,4,5,7};
size_t size = sizeof(arr) / sizeof(arr[0]);
double average = 0;
const double* p = aver(arr, size, average);
cout << *p << " " << average << endl;
double arr[]={1,2,3,4,5,7};
size_t size=sizeof(arr)/sizeof(arr[0]);
双平均=0;
常数double*p=平均值(arr、大小、平均值);
库特
为什么函数
avr
是指针?它指的是什么

这个函数返回一个指向常量float的指针,它返回一个指向最接近平均值的数字的指针,但为什么它是指针呢?我看不出有什么原因,也许只是出于教育目的,我认为没有必要使用指针,应该尽量避免使用指针,这里按值返回会更好

是否有方法将大小数学转换为函数avr

不,你不能,你的函数得到一个指向数组的指针,编译器不知道指针指向什么,这意味着它现在不知道它包含什么,或者它有多少个元素。因此,您需要计算外部的大小,并将其传递给函数

如何将平均值传递给平均参考值

不清楚你在这里问什么,但是这里有一个解释可以帮助你理解通过引用:考虑你有一个函数,比如“代码>空洞FUNC(int and PARAM)”,在这里,当你调用这个方法时,它将在内部声明一个<代码> int引用< /代码>命名<代码> PARAM < /代码>,就像你可以在外面做一样,然后它将是对给定参数的引用,正如您所知,引用是对给定参数的别名,因此您只需传递变量(例如,您有

int x;
只需调用
func(x);
),然后在函数buddy
中,param
将是
x
的别名并被使用


请记住,当您通过引用传递参数时,对该参数的任何更改都会影响您最初传递的参数(它们是相同的,Alias,记得吗?),因此如果您希望自己不要意外更改不想更改的参数,将函数更改为
常量引用
如下
void func(int const¶m) 

在常规C++项目中,您不使用C样式数组(<代码>双ARR[]/COD>),但<代码> STD::vector < /COD>或<代码> STD::这些类有一个
size
方法来获取元素的数量。但如果必须使用c样式的数组,则需要自己传递该数组的大小。您的问题说明函数的返回值是什么-指向数组
arr
中最接近计算平均值的元素的指针。函数同样可以返回表示索引的
size\t
,因此
arr[index]
是最接近计算平均值的元素。毕竟,
(&arr[i]-&arr[0])==i
表示
i
0
size-1
之间的任何值(其中
size
,正如您计算的,是
arr
中的元素数)。