C++中将数组的指针作为函数参数

一、一维数组

 //计算一维数组中的元素和

#include <iostream>

using std::cout;
using std::endl;

double getSum(double* arr,int n);

 

int main()
{
 double arr[] = {6.0,5.0,24.0,24.5,36.5,46.0,35.0,12.0,89.0,100.0};

 cout<<"Sum = "<<getSum(arr,(sizeof arr)/(sizeof arr[0]))<<endl;

 return 0;
}

double getSum(double* arr,int n)
{
 double sum = 0.0;
 for (int i=0;i<n;i++)
 {
      sum += *arr++;
 }
 return sum;
}

二、二维数组

//计算二维数组中的所有元素的和

#include <iostream>
using std::cout;
using std::endl;

double getSum(double* arr, int n);

 

int main()
{
 double arr[3][4] ={{19.0,31.0,33.0,14.0},
                             {57.0,63.0,78.0,81.0},
                             {59.0,90.0,111.0,125.0}} ;

//第一个参数可以为  *arr

//arr[0](数组第一行地址)

// &arr[0][0](数组第一行第一个元素的地址)

 cout<<"Sum = "<<getSum(&arr[0][0],sizeof arr/sizeof arr[0]); 

 return 0;
}

 

double getSum(double* arr, int n)
{
 double sum = 0.0;
 for (int i=0;i<n;i++)
 {
     for (int j=0;j<4;j++)
    {   

       //此处是取巧的做法,因为C++中不管是一维数组还是多维数组的存放都是顺序存放的 ,CLI/C++中不一样
        sum += *arr++;   
    }
 }
 return sum;
}

 

引用数组元素的方法一般可以是下面几种

//先定义数组

double arr[3][4];

double* parr; 

引用元素方式

1、arr[i][j]

2、*(*(arr+i)+j)

3、*(arr[i]+j)

4、(*(arr+i))[j]

 

 

posted @ 2009-07-04 12:54  trace007  阅读(1088)  评论(0编辑  收藏  举报