通過數組中的函數指針來調用函數,不知道爲什麼得到結果

今天剛好需要用到通過數組中的函數指針來調用函數,所以就寫了了一個例子,但是遇到了問題。

在程序運行後,就是得不到結果。

一開始,我以爲你是 add_table函數調用失敗,後來我驗證後發現還是調用了,只是沒有得到實際結果。

始終沒找到原因。

大家幫我看看,有沒有什麼想法。

程序源碼:

#include <stdio.h>

//double yy;

double add1(double x, double y)
{
    return x + y;
}

double add2(double x, double y)
{
    return x - y;
}

void add_table(double x, double y, double(**p)(double, double))
{
    printf("add_table...\n");
    printf("add1 = \n",(*p[0])(x,y));
    printf("add2 = \n",(*p[1])(x,y));
}

int main() {
    int x = 2,y = 1;
    double (*pf[2])(double, double) = {add1,add2};
    add_table(x,y,pf);

    return 0;
}

我的運行結果:

add_table
add1 =
add2 =




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章