1.函数指针类型做什么工作呢(起什么作用)
1)它规定了函数的"返回值和参数。"只要是这种它所对应的返回值和参数类型的函数,它都可以调用起来。
2)回调函数是通过函数指针做函数参数实现的,"它的本质是:提前对函数的返回值和参数做了一个约定"
2.数组类型和数组指针指针类型
1)数组类型
int arr[10]; arr代表数组首元素地址; &arr代表整个数组首地址。虽然 arr 和 &arr 的值相同,但是他们的步长不同
2)数组类型
typedef int (MyArr)[10]; MyArr marr; marr[0] = 10;"数组的首元素赋值为10"
3)数组指针类型:
typedef int (*MyTypeArr) [10]; MyTypeArr myarr = &arr;
(*myrr)[0] = 10; "数组的首元素赋值为10"
或直接定义数组指针
int (*MyTypeArr) [10]; (*MyTypeArr)[0] = 20;
3.函数指针:"(函数名就是函数的入口地址)"
1)定义一个函数类型
void func(int a,int b){ }
2)定义一个函数类型
typedef void (Myfunc)(int a,int b); Myfunc *myfunc = func; 对它的调用 myfunc(4,6);
3)定义一个函数指针类型
typedef void (*MyPfunc)(int a,int b); MyPfunc myfunc1 = func; 对它的调用:myfunc1(3,0);
或者直接定义:void (*MyPfunc1)(int a, int b); MyPfunc1 = func; 对它的调用:mypfunc1(3,0);
1 6.递归的套路: 2 1)先判断递归结束条件 3 2)再调递归函数(传递的参数一般与判断条件相同)。 4 "顺序打印字符串,用递归思想" 5 void test(const char *str) 6 { 7 if (NULL == str) 8 return; 9 if (*str == '