C语言 【指针】

指针的形式:int *var;
指针的指针形式:int **var;
1 #include <stdio.h> 2 3 int main() 4 { 5 int var=200; 6 int *ip; 7 int **ptr; 8 9 10 ip = &var; 11 12 ptr = &ip; 13 printf("====================指针的值=======================\n"); 14 printf("普通变量的值%d\n",var); 15 16 printf("指针的值:%d\n",*ip); 17 18 printf("指针的指针的值:%d\n",**ptr); 19 20 printf("====================指针的值=======================\n"); 21 22 printf("普通变量的值%p\n",var); 23 24 printf("指针的值:%p\n",ip); 25 26 printf("指针的指针的值:%p\n",ptr); 27 28 29 30 31 32 33 34 }
运行结果:

指针的函数形式: int(*fun_ptr)(int,int) = &函数名
typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型(函数声明)
1 #include <stdio.h> 2 3 int max(int x, int y) 4 { 5 return x > y ? x : y; 6 } 7 8 int main(void) 9 { 10 /* p 是函数指针 */ 11 int (* p)(int, int) = & max; // &可以省略 12 int a, b, c, d; 13 14 printf("请输入三个数字:"); 15 scanf("%d %d %d", & a, & b, & c); 16 17 /* 与直接调用函数等价,d = max(max(a, b), c) */ 18 d = p(p(a, b), c); 19 20 printf("最大的数字是: %d\n", d); 21 22 return 0; 23 }
回调函数
函数指针作为某个函数的参数
一个二次元的生物

浙公网安备 33010602011771号