函数指针和指向函数的指针.ppt
函数指针和指向函数的指针用函数指针变量调用函数;函数指针作函数的参数;返回指针的函数。1、用函数指针变量调用函数(函数指针)、用函数指针变量调用函数(函数指针)一个函数在编译时被分配一个入口地址(第一条指令的地址),这个入口地址称为函数的指针。如果一个指针变量的值等于函数的入口地址,称为指向函数的指针变量,简称为函数指针;可以通过函数指针来调用函数。函数指针定义的一般形式:函数指针定义的一般形式:函数返回值类型(*指针变量名)(形参类型)eg:int(*p)(int,int);int(*p)(int,int);注:用函数指针调用函数时,应指定实参;(*p)()*p)()表示一个指向函数的指针变量,它可以先后指向不同的函数;指向函数的指针变量p,向p+、p-、p+n等运算是无意义的。用函数指针调用函数用函数指针调用函数max()max()2.函数指针作函数参数实参函数名 f1 f2f1 f2f1 f2f1 f2 sub(int(*sub(int(*x1)(int),int(*x2)(int,int)x1)(int),int(*x2)(int,int)/*/*定义定义x1x1、x2x2为函数指针变量为函数指针变量,x1,x1指向的函数有一个整型形指向的函数有一个整型形参,参,x2x2指向的函数有两个整型形参指向的函数有两个整型形参*/int a,b,i=a,j=2;a=(*x1)(i);/*调用f1函数*/b=(*x2)(i,j);/*/*调用调用f2f2函数函数*/f1f1函数函数f1x1f2f2函数函数f2x2lizi.CPP3、返回指针的函数一般形式:类型标识符*函数名(参数表)例int*a(int x,int y)声明一个函数,函数名为a,其返回值类型是“指向整型的指针”,函数形式参数为int x 和 int y。例2.有若干学生的成绩(每个学生四门课程),要求用户在输入学生序号(从开始)后,能输出该学生的全部成绩。分析:设计一个指针pointer指向一个学生的四门成绩 float(*pointer)4看图!pointer是一个指向一维数组的指针。数组元素个数为4(四门课程)pointer+1指向下一个学生的成绩。输入学生序号后,使pointer指向该学生的成绩,然后返回pointer指针.lizi2.CPP