【学习笔记】【C语言】指向函数的指针
每个函数都有自己的内存地址,指针保存了函数的地址后就能指向函数了。
1 #include <stdio.h> 2 3 4 double haha(double d, char *s, int a) 5 { 6 7 } 8 9 /* 10 掌握: 11 1.看懂语法 12 2.定义指向函数的指针 13 double (*p)(double, char *, int); 14 p = haha; 15 或者 16 double (*p)(double, char *, int) = haha; 17 3.如何间接调用函数 18 1> p(10.7, "jack", 10); 19 2> (*p)(10.7, "jack", 10); 20 */ 21 22 void test() 23 { 24 printf("调用了test函数\n"); 25 } 26 27 int sum(int a, int b) 28 { 29 return a + b; 30 } 31 32 int main() 33 { 34 // 定义指针变量指向sum函数 35 // 左边的int:指针变量p指向的函数返回int类型的数据 36 // 右边的(int, int):指针变量p指向的函数有2个int类型的形参 37 int (*p)(int, int); 38 39 p = sum; 40 41 //int c = p(10, 11); 42 43 //int c = (*p)(10, 11); 44 45 int c = sum(10, 9); 46 47 printf("c is %d\n", c); 48 49 50 return 0; 51 } 52 53 54 void test1() 55 { 56 // (*p)是固定写法,代表指针变量p将来肯定是指向函数 57 // 左边的void:指针变量p指向的函数没有返回值 58 // 右边的():指针变量p指向的函数没有形参 59 void (*p)(); 60 61 // 指针变量p指向了test函数 62 p = test; 63 64 p(); 65 //(*p)(); // 利用指针变量间接调用函数 66 67 //test(); // 直接调用函数 68 }