(一)返回指针值的函数的一般形式
类型名 * 函数名(参数表列)
如:int *a(int x,int y) 调用a函数返回的指针指向整型变量
(二)指针型函数小例子
例子,输入一个学生序号,然后输出该学生的所有成绩
1 #include<stdio.h> 2 int main(){ 3 int score[][4]={{60,70,80,90},{56,23,12,78},{68,59,45,23}}; 4 int *search(int (*pointer)[4],int n); 5 int *p; 6 int i,k; 7 scanf("%d",&k); 8 p=search(score,k); 9 for(i=0;i<4;i++) 10 printf("%d ",*(p+i)); 11 printf(" "); 12 } 13 14 int * search(int(*pointer)[4],int n){ //pointer是指向一维数组的指针变量 15 int *pt; 16 pt=*(pointer+n); //pt是score[k][0]的地址 17 return(pt); 18 }
注意比较*(pointer+n)和(*pointer+n)的区别
*(p+n)是某一行首元素的地址
(*p+n)是二维数组第n个元素的地址