函數有說過啊,再說幾個實用的高級函數用法
函數指針
int (*pfunction) ( int a; int b );
pfunction 是函數指針的名字
代碼
#include <stdio.h>
int add(int x, int y)
{
return x+y;
}
int sub(int x, int y)
{
return x-y;
}
int (*math) (int x, int y);
int main(void)
{
int a, b, result;
math = add;
printf("請輸入第一個參數:\n");
scanf("%d", &a);
printf("請輸入第二個參數:\n");
scanf("%d", &b);
result = math(a, b);
printf("運算的結果%d\n", result);
math = sub;
printf("請輸入第一個參數:\n");
scanf("%d", &a);
printf("請輸入第二個參數:\n");
scanf("%d", &b);
result = math(a, b);
printf("運算的結果%d\n", result);
return 0;
}
執行結果
既然函數指針 , 那能不能有函數指針數組,可以試一試啊。
遞歸函數
再說一個函數 遞歸函數 就是自己調用自己的函數
比如說我們做一個階乘 1*2*3*4...
遞歸函數有個要素就是要有結束條件。如下。
代碼
#include <stdio.h>
int math(int x)
{
if(x < 2)
return x;
return x * math(x-1);
}
int main(void)
{
int a, date;
printf("請輸入一個值\n");
scanf("%d", &a);
date = math(a);
printf("階乘的結果%d\n", date);
return 0;
}
執行結果