1 指針函數:本質是函數,函數的返回值是指針;對面需要定義一個指針來接收。
<之前的函數,返回值爲void/int等>
//返回第num個同學的成績
book@100ask:~/C_coding/CH02$ cat func_pointer.c
#include <stdio.h>
#include <stdlib.h>
#define M 3
#define N 4
float average_score(int *p,int n)
{
int i;
float sum = 0;
for(i = 0; i < n; i++)
sum += p[i];
return sum/n;
}
int * find_num(int (*p)[N], int num) //接收傳遞過來的二維數組的首地址,與要查的行數。只負責找,不負責輸出,具體找到後幹什麼,交給其它函數來處理
{
if(num > M-1)
return NULL;
return *(p + num);
}
int main()
{
int i,j;
int a[M][N] = {1,2,3,4,5,6,7,8,9,10,11,12};
float ave;
int num=0;
int *res;
ave = average_score(*a,M*N);
printf