C语言指针示例
很多同学对C语言指针有阴影,其实理解这些并不难,推荐去看《C和指针》这本书,然后就是动手去验证。
函数指针,函数指针数组,数组指针,指针数组,二维数组与指针的关系等,一系列的东西,学一门语言就是要理解
它的每一个细节,以及他们之间的关系。再往深层就是学习一些软件架构,设计模式,操作系统原理,软件领域永远学不
完的知识,并且每种场景都可能出现某种语言的局限性,所以有时间要多学习其它语言,如脚本类的。
#include <stdio.h>
int *add(int x, int y)
{
static int a;
a = x + y;
return &a;
}
int *multiple(int x, int y)
{
static int a;
a = x * y;
return &a;
}
int * (**test(void))(int, int)
{
static int *(*p[2])(int, int) = {add, multiple};
return p;
}
int main(int argc, char *argv[])
{
printf("add(2,3)=%d\n", *(test()[0](2, 3)));
printf("multiple(2,3)=%d\n", *((*test()[1])(2, 3)));
}