您的位置:首页 > 其它

返回指针值的函数

2015-04-13 22:19 99 查看
返回指针型的数据 即地址


  例如: int *(int x,int y), a是函数名,调用它以后能得到一个in * 指针,即整形数据的地址,x 和 y是函数a的形参为整数

  定义返回指针的函数一般的形:

类型名 *函数名(参数列表);


下面通过一个例子来初步了解

#include<stdio.h>
int main()
{
float score[][4]={{50,70,80,90},{56,89,67,88},{34,78,90,66}};
float *search(float (*pointer)[4],int n);//函数声明
float *p;
int i,k;
printf("enter the number of student:");
scanf("%d",&k);
printf("The scores of No.%d are:\n",k);
p=search(score,k); //调用search函数 返回score[k][0]的地址
for(i=0;i<4;i++)
printf("%5.2f\t",*(p+i));
printf("\n");

return 0;
}
float *search(float (*pointer)[4],int n) //形参pointer是指向包含4个元素的一维数组指针变量
{
float *pt;
pt=*(pointer+n);
return (pt);
}


#include<stdio.h>
int main()
{
float score[][4]={{50,70,80,90},{56,89,67,88},{34,78,90,66}};
float *search(float (*pointer)[4]);//函数声明
float *p;
int i,j;
for(i=0;i<3;i++)  //循环三次
{
p=search(score+i);

if(p==*(score+i)) //如果返回值是score[i][0]的地址 否则返回NULL
{
printf("No.%d score:",i);
for(j=0;j<4;j++)
printf("%5.2f  ",*(p+j)); //输出core[i][0]~score[i][3]的值
printf("\n");
}
}
return 0;
}
float *search(float (*pointer)[4]) //形参pointer是指向包含4个元素的一维数组指针变量
{
int i=0;
float *pt;
pt=NULL;
for(;i<4;i++)
if(*(*pointer+i)<60)pt=*pointer; //如果有不及格课程,使pt指向score[i][0]
return (pt);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: