C++ Primer笔记 数组做形参

来源:互联网 发布:java数据库编程 编辑:程序博客网 时间:2024/06/13 16:17

数组做形参时基本有三种情况,如下

①int Func(int *arr, size_t length);                     //返回值为int类型只为举例,下同

②int Func(const int *beg, const int *end);

③int Func(int (&arr)[10]);


上述三种方式中:①传递的是数组首地址和数组长度,②传递的是数组首地址和数字末尾元素的下一个地址,③传递的是数组的引用。

当这样时:int Func(int arr[10]),编译器会忽略数组的长度,而仅仅当作一个指针来看,而如果传递的是数组应用的话就完全没有问题。

下面将分别举例

int Func(int *arr, size_t length)

{

    int sum = 0;

    while(length --)

    {

        sum += arr[lenght];

    }

    return sum;

}



int Func(const int *beg, const int *end)

{

    int sum = 0;

    const int *p = beg;

    while(p != end)

    {

        sum += *p++;                //执行步骤:sum += *p;     p ++;

    }

    return sum;

}



③int Func(int  (&arr)[10])

{

    int sum = 0;

    size_t length = 0;

    while(length --)

    {

        sum += arr[length];

    }

}

NOTE: 当调用③时,数组必须也是10个的大小。



 



原创粉丝点击