函数指针和指针函数
指针函数:
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