Cポインタプログラミングの道(二)-ポインタと関数

3082 ワード

関数へのポインタ(関数ポインタ)

/** *   */

# include 

int main() {
    int a=1, b=2;

    int max(int, int);
    int min(int, int);
    int add(int, int);
    void func(int, int, int (*p)(int,int)); // 

    func(a, b, max); //2
    func(a, b, min); //1
    func(a, b, add); //3

    return 0;
}

void func(int x, int y, int (*p)(int,int)) {
    printf("%d
"
, (*p)(x, y)); } int max(int x, int y) { return x>y ? x : y; } int min(int x, int y) { return x < y ? x : y; } int add (int x, int y) { return x+y; }

関数ポインタとポインタ関数

// : ,ep. int (*p)(int x, int y)
// : ,ep. int * p(int x, int y)

main関数

//main , 0 , 0 
// C99 ,main :
int main(void) {
    //...
    return 0;
}

int main(int argc, char *argv[]) { //argc ,argv 
    //...
    return 0;
}