函数
返回值类型 函数名(参数定义列表)
{
…
}
调用方法:函数名(参数列表);
1、有返回值
int add(int a,int b)
{
return a+b;
}
调用:result = add(1,2);
2、无返回值
如果没有返回值,定义函数的时候要用void。
void F() //函数所做的事情不需要从参数列表中传入数据,只靠函数本身的功能即可。
{
...
}
调用:F();
3、普通变量引用型定义
错误示范:
int result = 0;
void getRusult(int r)
{
++r;
}
调用:getResult(result);//只是把result的数值赋值给r
正确示范1: C++
int result = 0;
void getRusult(int &r)//引用型定义。直接引用result,result替换掉r
{
r++;
}
调用:getResult(result);
正确示范2: 纯C:引用型定义是C++的语法,C是靠传入变量地址的方法实现的(指针*,取地址&)
int result = 0;
void getRusult(int *r) //r是一个指针,要对它先取值,还原成整型变量,
{
++(*r);
}
调用:getResult(&result);//传result的地址
4、指针型的引用型参数
错误示范
int *p = NULL;
void getResult(int *p)
{
...
P=q;
...
}
正确示范1: C++
int *p = NULL;
void getResult(int *&P)
{
...
P=q;
...
}
调用:getResult(p);
正确示范2: C
int *p = NULL;
void getResult(int **P) //改变传入指针的值,传指针的地址,即二级指针,指向指针的指针型
{
...
*P=q; //*P是指针,而不是指向指针的指针,赋值,改变了P所指向的指针的值。加*号,还原出p
...
}
调用:getResult(&p); //传入p的地址,把p的地址赋值给了P,
5、c改变后的值对我们很重要,才需要用引用型
void add(int a,int b,int &c)
{
c=a+b;
}
6、一维数组作为参数的函数定义方法
void f(int x[],int n)
{
...;
}
第一个参数不需要限定数组的长度,第二个参数n,用来说明将来要传进函数加工的数组元素的个数,并不是指数组的总长度。
7、二维数组作为参数的函数定义方法
void f(int x[][5])
{
...;
}
int a[10][5];
int b[10][3];
f(a); //参数正确
f(b); //参数错误 第二个中括号里面要传入5
第一个中括号不需要写数组的长度,第二个中括号必须写数组的长度。
数组没有分引用和非引用。