一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址,返回的是指针类型。
返回指针值的函数的一般定义形式为;
数据类型 *函数名(参数列表)
例如: int *a(int x, int y);
a作为函数名,调用它之后能得到一个指向整型数据的指针(地址)。
()优先级高于*,因此a先与()结合,这是函数形式,返回值为指针形式。
1 #include2 float *search(float (*pointer)[4]); 3 float *search(float (*pointer)[4]) 4 { 5 int i; 6 float *pt; 7 pt = *(pointer+1); 8 for(i=0;i<4;i++) 9 if(*(*pointer+i)<60)10 pt = *(pointer);11 return pt;12 }13 void main()14 {15 float score[][4] = { { 60,70,80,90},{ 56,89,67,88},{ 34,78,90,66}};16 float *p;17 int i,j;18 for(i=0;i<3;i++)19 {20 p = search(score+i);21 if(p==*(score+i))22 {23 printf("No.%d scores:",i);24 for(j=0;j<4;j++)25 printf("%5.2f ",*(p+j));26 printf("\n");27 }28 }29 }