日本語

Advanced - Function Pointers

Difficulty: 🔴 Advanced
Time: 25 minutes

Declaration

int*(int, int) op;

int add(int a, int b) {
    return a + b;
}

int multiply(int a, int b) {
    return a * b;
}

int main() {
    op = add;
    int result1 = op(10, 20);
    
    op = multiply;
    int result2 = op(10, 20);
    
    return 0;
}

Higher-Order Functions

int apply(int*(int, int) fn, int x, int y) {
    return fn(x, y);
}

int max(int a, int b) {
    return a > b ? a : b;
}

int min(int a, int b) {
    return a < b ? a : b;
}

int main() {
    int max_val = apply(max, 10, 5);
    int min_val = apply(min, 10, 5);
    return 0;
}

Void Return Type

void*(string) printer;

void print_upper(string s) {
    println(s.toUpperCase());
}

void print_lower(string s) {
    println(s.toLowerCase());
}

int main() {
    printer = print_upper;
    printer("Hello");
    
    printer = print_lower;
    printer("WORLD");
    
    return 0;
}

Previous: Operator Overloading
Next: String Operations


Last Updated: 2026-02-08