作者在 2012-10-29 09:50:19 发布以下内容
1.指向函数的指针变量一般定义形式为
数据类型 (*指针变量名)(参数列表)
函数的调用可以通过函数名调用,也可以通过函数指针调用,例如,int max(int, int)与int (*p)(int, int); p = max是等价的。指针变量p是专门用来存放函数的入口地址的。p=max(a,b);这种写法是错误的。用函数指针变量调用函数时,只需将(*p)代替函数名即可。
2.返回指针值的函数,一般定义形式为
类型名 *函数名(参数列表)
数据类型 (*指针变量名)(参数列表)
函数的调用可以通过函数名调用,也可以通过函数指针调用,例如,int max(int, int)与int (*p)(int, int); p = max是等价的。指针变量p是专门用来存放函数的入口地址的。p=max(a,b);这种写法是错误的。用函数指针变量调用函数时,只需将(*p)代替函数名即可。
2.返回指针值的函数,一般定义形式为
类型名 *函数名(参数列表)
#include <stdio.h>
float *search(float (*pointer)[4], int n);
int main(){
float score[][4] = {{60,70,80,90}, {56,89,67,88}, {34,78,90,66}};
float *p;
int i, m;
printf("enter the number of student:");
scanf("%d", &m);
printf("the scores of No. %d are:n", m);
p = search(score, m);
for(i=0; i<4; i++){
printf("%5.2ft", *(p+i));
}
printf("n");
return 0;
}
float *search(float (*pointer)[4], int n){
float *pt;
pt = *(pointer+n);
return pt;
}
float *search(float (*pointer)[4], int n);
int main(){
float score[][4] = {{60,70,80,90}, {56,89,67,88}, {34,78,90,66}};
float *p;
int i, m;
printf("enter the number of student:");
scanf("%d", &m);
printf("the scores of No. %d are:n", m);
p = search(score, m);
for(i=0; i<4; i++){
printf("%5.2ft", *(p+i));
}
printf("n");
return 0;
}
float *search(float (*pointer)[4], int n){
float *pt;
pt = *(pointer+n);
return pt;
}