C和指针 第十三章 高级指针话题
Posted 日拱一卒,功不唐捐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C和指针 第十三章 高级指针话题相关的知识,希望对你有一定的参考价值。
高级声明:
int (*f)();
这里声明有两个括号,第二个括号是函数调用,第一个括号是聚组作用。(*f)是一个函数,所以f是指向返回整型的函数的指针。程序中的每个函数都位于,内存中某个位置,所以存在指向那个位置的指针。
int *f[];
下标的优先级高,所以f是个数组,数组中元素为指向int的指针。
int (*f[])()
首先按照优先级进行分析,括号内(*f[])先求值,所以*f[], f是数组,数组元素是指向某种类型的指针,结合外面的看,f是一个数组,数组元素是指向返回int类型的函数的指针。
函数指针:
指针在使用前需要进行初始化,对于函数指针,访问前需要初始化为指向摸个函数。
int fuc(int); int (*fPtr)(int) = &fuc; //在函数初始化之前需要具有fuc的原型,否则,编译器无法检查fuc的类型是否与fPtr一致。
以上是关于C和指针 第十三章 高级指针话题的主要内容,如果未能解决你的问题,请参考以下文章