返回首页 - Notes - 2014

C语言函数与指针


指针函数:返回指针的函数

指针函数是指带指针的函数,本质是一个函数,只是返回的是一个指针,也就是一个地址,如 int *f_name (int x, int y)

指针函数一定有返回值,且其返回值必须赋值给同类型的指针变量


函数指针:指向函数的指针

函数指针是指指向函数的指针变量,本质是一个指针,如 int (*f_name) (int x, int y)

下面的例子演示了函数指针的定义方法和调用方法:

#include <stdio.h>

int add (int, int);  // 声明函数原型


int main (int argc, char *argv[]) {
    int (*padd) (int, int);  // 定义函数指针
    padd = add;  // 将函数的地址赋予该函数指针

    printf("%d\n", add(1, 2));      // 调用原函数
    printf("%d\n", (*padd)(1, 2));  // 调用函数指针方法1
    printf("%d\n", padd(1, 2));     // 调用函数指针方法2

    return 0;
}


int add (int x, int y) {
    return x + y;
}

指针函数和函数指针的区别

最显著的一点,名称有括号包围的是 指针(函数指针),无括号包围的是 函数(指针函数)


date : 2014-04-03、2014-11-21