如何使用函数
函数定义
无返回值
void functionName(parameterList)
{
statement(s)
return; //optional
}
有返回值
typeName functionName(parameterList)
{
statements
return value;//value is type cast to type typeName
}
函数原型语法
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);
为防止函数无意中修改数组的内容,可在声明参数时使用关键字constint 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)
double x=(*pf)(4);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;