一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址,返回的是指针类型。
返回指针值的函数的一般定义形式为;
数据类型 *函数名(参数列表)
例如: int *a(int x, int y);
a作为函数名,调用它之后能得到一个指向整型数据的指针(地址)。
()优先级高于*,因此a先与()结合,这是函数形式,返回值为指针形式。
1 #include <stdio.h> 2 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 }