学习笔记

C++PrimerPlus函数
Publish: 2018/7/23   

函数

如何使用函数

  1. 提供函数定义
  2. 提供函数原型
  3. 调用函数

函数定义

函数原型语法

double cube(double x,double y);
void cheer(int,int);

函数原型作用

参数是数组

int sum_arr(int arr[],int n);
int sum_arr(int arr[],int n)
{
    for(int i=0;i<n;i++)
    {
        toral=total+arr[i];
    }
    return total;
}

因为c++将数组名解释为其第一个元素的地址,因此需要提供数组的长度n;也可以使用指针替代数组名
int sum_arr(int * arr,int n);

用const保护数组

为防止函数无意中修改数组的内容,可在声明参数时使用关键字const
int sum_arr(const int arr * ,int n);

使用数组区间的函数

指定元素区间,通过传递两个指针完成,一个指针标识数组的开头,另一个指针标识数组的尾部

int sum_arr(const int*begin,const int*end);
int sum_arr(const int*begin,const int*end)
{
    const int*pt;
    int total=0;
    for(pt=begin;pt!=end;pt++)
    {
        total=total+*pt;
    }
    return total;
}

参数是二维数组

int data[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int sum(int (*ar2)[4],int size);
//或
int sum(int ar2[][4],int size);
int sum(int ar2[][4],int size)
{
    int total=0;
    for(int x=0;x<size;x++)
    {
        for(int y=0;y<4;y++)
        {
            total += ar2[x][y];
        }
    }
    return total; 
};
//ar2[x][y]==*(*(ar2+x)+y)

函数指针

double pan(int);
// 指针类型声明
double (*pf)(int)
函数指针数组
const double * f1(const double ar[],int n);
const double * f2(const double [],int);
const double * f2(const double *,int);

在声明时进行初始化
const double * (*p1)(const double *,int)=f1;

auto p2 = f2; //auto 自动类型推断功能

包含三个函数指针的数组
const double * (*pa[3])(const double *,int)={f1,f2,f3};
**&pa == *pa == pa[0]

pd是一个指针,指向一个包含三个元素的数组
const double *(*(*pd)[3])(const double *,int)=&pa;



← Java并发编程实战-3基础知识_对象的组合 C++PrimerPlus指针 →

Powered by Hexo, Theme designs by @hpcslag.
Style-Framework Tocas-UI designs by @yamioldmel