1、函数的定义
数据类型 函数名 (【数据类型 形参名,数据类型 形参名 ......】)
2、函数的传参
值传递
地址传递:可以实现两个数的交换
全局变量
3、函数的调用
嵌套
递归:直接或间接的调用自己
4、函数与数组
1>函数与一维数组
int a[n] = {1,2,3,4,5,6};
int *p = a;
传参 a *a a[0] &a[3] p[i] p *p p+1
接收 int * int int int * int int * int int *
2>函数与二维数组
int a[m][n] = {1,2,3,4,5,6,7,8,9};
int *p = *a;
int (*q)[n] = a;
传参: a[i][j] *(a+i)+j a[i]+j p[i] *p q[i][j] *q q p+3 q+2
接收 int int * int * int int int int * int (*)[n] int * int(*)[n]
3>函数与字符数组
char str[] = "helloworld";
传参 : str
接收 :char *
5、函数与指针
1>指针函数:某一个函数的返回值为一个指针。
返回值 * 函数名 (形参...);
例如: int * fun(int ...);
2>函数指针:一个指针指向这个类型的函数。
类型 (*指针名) (形参...);
例如: int (*p)(int ...);
3>函数指针数组:一个数组,数组里边有N个元素,每个元素都是指针,指向这个类型的函数。
类型 (*数组名【下标】)(形参...);
例如:int(*arr[N])(int...);
4>指向指针函数的函数指针数组:int *(*funp[N])(int ...);