函数指针和指针函数

指针函数:

int *fun(int x, int y);

首先是一个函数,返回一个指针。

函数指针:

int (*fun)(int x , int y);

首先是一个指针,指向一个函数。

void add(void)
{
    printf("shuchu \n");
}

int main(int argc, char *argv[])
{
    //将&add改为add,输出一样。
    //说明右侧不管为add还是&add,p取到都是函数add的地址,是一个指针,8个字节。
    //因此,p就是函数add的地址,大小为8个字节,*p就是add本身,大小为1个字节。
    void (*p)(void) = &add;
    (*p)();
    printf("%d %d %d %d\n", *p, p, add, &add);
    printf("%d %d %d %d\n", sizeof(*p), sizeof(p), sizeof(add), sizeof(&add));
}

输出:
shuchu
4199760 4199760 4199760 4199760
1 8 1 8

 

posted @ 2023-04-19 11:37  jason8826  阅读(3)  评论(0编辑  收藏  举报