自学嵌入式第六天
函数指针的小应用有两个整数a和b,由用户输人1,2或3。如输入1,程序就给出a和b中大者,输人2,就给出a和b中小者,输人3,则求a与b之和首先封装三个取值函数定义一个函数指针通过switch语句选择123指向不同的函数类型相同。回调函数的封装此过程中主函数传的是函数的地址需要解引用拿到函数本身再进行调用。指针数组数组指针 是一个指针int (*p)[4];这是一个指向一位数组的指针变量而指针数组是一个数组里面存放的都是指针注意区分int * p[4];每一项都是一个指针变量函数指针数组指针函数 返回指针值的函数叫指针函数例int* getsss(int a, int (*p)[3]){int *p; p ......return p;}这个函数的返回值类型为指针类型二级指针int data 10;int *p;p a;int *p1;p1 p;这种情况*p1不能取到data的值只能取到p的值也就是只能取到data的地址。要想取到data引入二级指针int **p2;p2 p;*p2 p;(data的地址)**p2 data;二维指针的应用当你通过函数调用来修改调用函数指针指向的时候就像通过函数调用修改某变量的值的时候一样此时传的是指针变量的地址传 ppos我们要在 getPosPerson 函数里给 main 里的 ppos 指针赋值让它指向指定学生的成绩数组此时拿到的是 ppos 变量的地址通过解引用 *ppos就能直接修改 main 里原指针的值pstu是行指针pstupos 指向第 pos 行的首地址注意二级指针和二维数组别相当然想成一样的那不对