您的位置:首页 > 其它

科锐课堂笔记:2017/3/16 二级指针与函数指针

2017-03-16 20:20 323 查看
  二级指针:

  二级指针顾名思义指针的指针,解引用一个二级指针得到内容是一个一级指针(这样好理解点吧,一级指针就是我们常说的指针),比如一个int**的二级指针解引用得到的是int*的一级指针。

  二级指针与数组的关系:

  int **ppn;

  int ary[3][5];

  int *ary2[5];

  ary2可以直接赋值给ppn,ary2表示ary2[0]的指针常量,ary2[0]的类型是int*,int*的指针不就是二级int**指针吗,所以类型匹配。ary能不能直接赋值给ppn呢?不能,ary是一个二维数组表示ary[0]的指针常量,ary[0]类型是int[5],所以ary表示一个int (*)[5]的指针,与ppn风马牛不相及当然赋不了值。

  二级指针的主要用在函数参数中,用来间接修改传进来的外部指针变量。

  函数指针:

  函数名表示一个函数指针常量。把一个函数赋值给函数指针时,其参数序列(个数、型类、顺序)、调用约定、返回值都必须相匹配,否则编译器将报错。在定义函数指针时可以使用typedef新增该函数指针类型的关键字(可以看作别名),例如typedef void (__stdcall *FUN)(int),函数指针的用途可以强制一个地址值直接调用过去当函数代码运行,但更多的是用在设计方面,把函数指针参数化,使程序的业务与算法分离,典型的如使用函数指针数组实现流程的自定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: