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)));
}

You may also like...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据