函数指针的定义是什么
顾名思义,函数指针就是函数的指针。它是一个指针,指向一个函数。看例子:
A),char * (*fun1)(char * p1,char * p2);
B),char * *fun2(char * p1,char * p2);
C),char * fun3(char * p1,char * p2);
数组参数等效的指针参数
数组的数组:char a[3][4] 数组的指针:char (*p)[10]
指针数组: char *a[5] 指针的指针:char **p
看看上面三个表达式分别是什么意思?
C):这很容易,fun3 是函数名,p1,p2 是参数,其类型为char *型,函数的返回值为char *类型。
B):也很简单,与C)表达式相比,唯一不同的就是函数的返回值类型为char**,是个二级指针。
A):fun1 是函数名吗?回忆一下前面讲解数组指针时的情形。我们说数组指针这么定义或许更清晰:
int (*)[10] p;
再看看A)表达式与这里何其相似!明白了吧。这里fun1 不是什么函数名,而是一个指针变量,它指向一个函数。这个函数有两个指针类型的参数,函数的返回值也是一个指针。同样,我们把这个表达式改写一下:char * (*)(char * p1,char * p2) fun1; 这样子是不是好看一些呢?只可惜编译器不这么想
A),char * (*fun1)(char * p1,char * p2);
B),char * *fun2(char * p1,char * p2);
C),char * fun3(char * p1,char * p2);
数组参数等效的指针参数
数组的数组:char a[3][4] 数组的指针:char (*p)[10]
指针数组: char *a[5] 指针的指针:char **p
看看上面三个表达式分别是什么意思?
C):这很容易,fun3 是函数名,p1,p2 是参数,其类型为char *型,函数的返回值为char *类型。
B):也很简单,与C)表达式相比,唯一不同的就是函数的返回值类型为char**,是个二级指针。
A):fun1 是函数名吗?回忆一下前面讲解数组指针时的情形。我们说数组指针这么定义或许更清晰:
int (*)[10] p;
再看看A)表达式与这里何其相似!明白了吧。这里fun1 不是什么函数名,而是一个指针变量,它指向一个函数。这个函数有两个指针类型的参数,函数的返回值也是一个指针。同样,我们把这个表达式改写一下:char * (*)(char * p1,char * p2) fun1; 这样子是不是好看一些呢?只可惜编译器不这么想
【函数指针的定义是什么】相关文章
1. 函数指针的定义是什么
2. 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
3. 用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
5. 介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
6. 我能否用void** 指针作为参数, 使函数按引用接受一般指针
7. 函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
8. 简述数组与指针的区别
9. static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
本文来源:https://www.mianshiwenti.com/a13158.html
进入下载页面
上一篇:对于没有初始化的变量的初始值可以作怎样的假定
下一篇:以下的初始化有什么区别
﹝函数指针的定义是什么﹞相关内容
- 编写类String的构造函数、析构函数和赋值函数
- 职场礼仪的定义和原则
- 事实劳动关系的定义
- 免职处分的定义
- 网络体系结构及协议的定义
- 恶意软件的定义
- Java多态性的定义以及类型
- JNI的定义
- AOP的定义以及作用
- 内部类的定义、种类以及优点