C++给函数传数组参数

在C++中,如果要给一个函数传入一个数组,一般都是传入两个参数一个数组指针和一个数组大小。

单独传递一个数组或者指针进去,会导致数组不完整。

做个试验:

#include <iostream>

using namespace std;
int getAverage(int arr[]);

int getAverage(int arr[]) {
    int i;
    int len = (sizeof(arr) / sizeof(int));
    int sum = 0;
    int *p = arr;
    for (i = 0; i < len; i++) {
        sum += *p;
        p++;
    }
    return sum / len;
}

int main() {
    int arr[] = {1, 2, 3, 3, 4, 5};
    printf("数组的平均值是: %d \n", getAverage(arr));
    return 0;
}

输出:

数组的平均值是: 1
请按任意键继续. . .
#include <iostream>

using namespace std;
int getAverage(int arr[]);

int getAverage(int arr[], int len) {
    int i;
    int sum = 0;
    int *p = arr;
    for (i = 0; i < len; i++) {
        sum += *p;
        p++;
    }
    return sum / len;
}

int main() {
    int arr[] = {1, 2, 3, 3, 4, 5};
    int len = (sizeof(arr) / sizeof(int));

    printf("数组的平均值是: %f \n", getAverage(arr, len));
    return 0;
}

输出:

数组的平均值是: 3
请按任意键继续. . .
时间: 2024-10-11 05:11:39

C++给函数传数组参数的相关文章

swift向方法传数组参数的语法

总是记不住向方法中传数组参数的语法,所以记录一下. func calculateStatistics(scores:[Int]) -> (min:Int,max:Int,sum:Int) { var min = scores[0] var max = scores[0] var sum = 0 for score in scores { if score>max { max=score } else if score<min{ min=score } sum += score } ret

C语言结构体及函数传递数组参数示例

注:makeSphere()函数返回Sphere结构体,main函数中,调用makeSphere()函数,传递的第一个参数为数组,传递的数组作为指针. 版权声明:本文为博主原创文章,未经博主允许不得转载.

给model模型传数组参数

$res = $this->Company->companyDischarge($this->user_id,array(0=>'c.limit_sum>0',1=>'cp.kh_city="'.$kh_city.'"'),$page,$this->num); 取值 $conditions = array('c.limit_sum>0'); if(isset($_REQUEST['kh_city'])&&$_REQUEST

参数传递:传值参数,指针形参,传引用参数,const形参和实参,数组形参,main:处理命令行选项,含有可变形参的函数

重点: 1.每次调用函数时都会重新创建它的形参,并用传入的实参对形参进行初始化. NOTE: 形参初始化的机理与变量初始化一样. 2.形参的类型决定了形参和实参交互的方式. (引用->绑定,非引用->拷贝) 3.实参分为:被引用传递(引用形参是实参的别名),被值传递(实参形参是两个相互独立的对象). 4.传值参数:函数对形参做的所有操作都不会影响实参. 5.指针形参:指针的行为和其他非引用类型一样,当执行指针拷贝操作时,拷贝的是指针的值.拷贝后,两个指针是不同的指针. NOTE: C程序员常常

C语言 数组做函数参数不传数组个数的遍历方法

//数组做函数参数不传数组个数的遍历方法 #include<stdio.h> #include<stdlib.h> #include<string.h> void PrintfAK(char **pin){ int i = 0; //关键点:pin[i]!=NULL为终止条件 for (i = 0; pin[i]!=NULL; i++) { printf("%s\n", pin[i]); } } void main(){ //赋值数组最后一个元素是0

JS函数arguments数组获得实际传参数个数

JS与PHP在函数传参方面有点不同,PHP形参与实参个数要匹配,而JS就灵活多了,可以随意传参,实参比形参少或多都不会报错. 实参比形参多不会报错 ? 1 2 3 4 5 function say(a){    alert(a); } say('琼台博客','WEB技术博客'); 执行结果 我们再来看看形参比实参多的结果 ? 1 2 3 4 5 function say(a,b){    alert('a 的值是 '+a+'\nb 的值是 '+b); } say('琼台博客'); 执行结果 a

C-函数传数组参数给另一个函数,使用malloc

// // main.c // // // Copyright ? 2018 [email protected] // #include <stdio.h> #include<stdio.h> void fun(int *array){ int sum=0; for(int i=0;i<5;i++){ printf("%d\n",array[i]); sum=sum+array[i]; } printf("%d",sum); } int

JavaScript,数组和函数传参 笔记

函数返回值 return  一个函数只有一种返回值 函数传参 可变参,不定参 arguments 提取行间样式 style 提取非行间样式currentstyle  不兼容   getComputedstyle可在不兼容浏览器中使用  在写程序的时候  可用if函数处理兼容问题 在提取非行间样式的时候,复合样式(如:border,backgrund)不可提取,单一样式( height,width)可提取 数组的使用 定义  var arr=[12,5,8,9] var arr=new Array

Chrome和Firefox浏览器执行new Date() 函数传参数得到不同结果的陷阱

某日,同事问到关于new Date() 函数传参数,在火狐浏览器和谷歌浏览器控制台运行,会得到不同的结果,刚开始觉得不可能,后来实际操作才发现此陷阱 var date = new Date('2014-07-25T23:00:00'); alert(date); 在火狐浏览器返回的是: Date {Fri Jul 25 2014 23:00:00 GMT+0800} 火狐浏览器版本(通过navigator.userAgent输出):"Mozilla/5.0 (Windows NT 6.1; WO