- int sum(int a, int b);
- int main()
- {
- //一般指针
- int a = 1;
- int *b = &a;
- printf("---a : %d---\\n---&a : %d---\\n---b : %d---\\n---*b : %d---\\n\\n", a, &a, b, *b);
- //输出结果:---a:1---&a:2686744---b:2686744---*b:1---
- //指针的指针
- int **x;
- x = &b;
- printf("---x : %d---\\n---*x : %d---\\n---**x : %d---\\n\\n", x, *x, **x);
- //输出结果:---x:2686740---*x:2686744---**x:1---
- //函数指针
- int (*z)(int, int);
- z = sum;
- int c = z(2, 3);// 或 int c = (*z)(2, 3);
- printf("---z : %d---\\n---*z : %d---\\n---c : %d---\\n\\n", z, *z, c);
- //函数指针的指针
- int *(*zx)(int, int);
- zx = &(*z);
- int d = zx(4, 5);
- printf("---zx : %d---\\n---*z : %d---\\n---&(*z) : %d---\\n---d : %d---\\n\\n", zx, *z, &(*z), d);
- //也许可以推导到更遥远的地方去……
- return 0;
- }
- int sum(int a, int b){
- return a+b;
- }
- //该片段来自于http://www.codesnippet.cn/detail/0112201411110.html
来源: http://www.codesnippet.cn/detail/0112201411110.html