一个复杂的声明,包含数组指针,指针数组,函数指针和指针函数的区别
2013-10-26 15:43
489 查看
这个例子其实很少用到,举这个例子的目的只是为了分清楚一些概念性的东西,真正的编程中估计任何人也不想遇到这样的问题
题目:定义一个包含N个指向返回指向字符指针的函数的指针的数组?
如果哪家公司那这个做面试题,真的是很没有意义
我们首先来分解这个题目
(1) 包含N个指针的数组,我们知道在形式上数组指针和指针数组的区别是数组指针是一个指针,所以指针的优先级高,需要用括号包含,char (*p)
,而指针数组数组的优先级高,所以形式为char *p
;指针的数组其实就是指针数组,
(2)指向字符指针的函数,这里就牵涉到了指针函数和函数指针的问题,指针函数式形如int *f(),首先指针函数是一个函数,只不过是这个函数值的返回值是一个地址,函数的返回值必须使用同类型的指针变量来接收,也就是说指针函数一定有函数返回值,而且在主调函数中,函数的返回值必须赋给同类型的指针变量
例如:int *p();int *ptr;ptr=p();
而函数指针是形如int (*p)(),主要用于回调函数,至于回调函数的概念可以参考本博客的回调函数这篇文章,
注意指针函数和函数指针的表示方法不同,最简单的辨别方法是函数名前面的指针符号*有没有被()包含,包含就是函数指针,不包含就会说指针函数,函数指针是一个指针,指针函数是一个函数。
返回指向字符指针的函数,首先是一个函数,函数的返回值是指向字符指针的,这个明显是指针函数的概念,char *(*p
)()
(3)所以综合上面两项,将其合并 char *(*(*p
)())()
题目:定义一个包含N个指向返回指向字符指针的函数的指针的数组?
如果哪家公司那这个做面试题,真的是很没有意义
我们首先来分解这个题目
(1) 包含N个指针的数组,我们知道在形式上数组指针和指针数组的区别是数组指针是一个指针,所以指针的优先级高,需要用括号包含,char (*p)
,而指针数组数组的优先级高,所以形式为char *p
;指针的数组其实就是指针数组,
(2)指向字符指针的函数,这里就牵涉到了指针函数和函数指针的问题,指针函数式形如int *f(),首先指针函数是一个函数,只不过是这个函数值的返回值是一个地址,函数的返回值必须使用同类型的指针变量来接收,也就是说指针函数一定有函数返回值,而且在主调函数中,函数的返回值必须赋给同类型的指针变量
例如:int *p();int *ptr;ptr=p();
而函数指针是形如int (*p)(),主要用于回调函数,至于回调函数的概念可以参考本博客的回调函数这篇文章,
注意指针函数和函数指针的表示方法不同,最简单的辨别方法是函数名前面的指针符号*有没有被()包含,包含就是函数指针,不包含就会说指针函数,函数指针是一个指针,指针函数是一个函数。
返回指向字符指针的函数,首先是一个函数,函数的返回值是指向字符指针的,这个明显是指针函数的概念,char *(*p
)()
(3)所以综合上面两项,将其合并 char *(*(*p
)())()
相关文章推荐
- 函数内 声明一个字符数组和一个指向字符串数组的指针 区别
- 指针数组、数组指针、指针函数、函数指针的区别
- c语言复杂变量声明(数组、指针、函数)
- 笔试题-输入一个字符数组将这些字符串按顺序合并输出-指针数组-数组指针-函数指针-指针函数
- 函数指针—指针函数 数组指针—指针数组 类模板—模板类 函数模板——模板函数 的区别
- C/C++——声明一个到字符的指针,包含10个整数的数组,到包含10个整数的数组的引用,到字符串的数组的指针,到字符的指针的指针...
- 指针数组--数组指针,指针函数--函数指针,类模板--模板类,函数模板--模板函数 的区别
- 指针数组,数组指针,指针函数,函数指针的区别及类型间的转换
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数一览无遗! C/C++求职面试必备考点(四)
- 数组指针与指针数组的区别(函数指针与指针函数类似)
- 函数指针与指针函数的区别及函数指针数组
- 声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
- 返回类型是函数指针的函数指针 类比复杂的数组声明
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数一览无遗! C/C++求职面试必备考点(四)
- 指针数组和数组指针的区别&指针函数和函数指针的区别
- 数组和指针、数组指针和指针数组、函数指针和指针函数、数组标识符的意义、静态和动态创建的数组的本质区别、标识符类型判断方法
- 指针数组 数组指针 指针函数 函数指针的区别
- 数组指针和指针数组的区别、指针函数与函数指针的区别
- 指针数组与数组指针的区别,指针函数与函数指针的区别
- 常量指针、指针常量、指针函数、函数指针、指针数组、数组指针区别在哪里?