关于指针数组指针做为返回类型的函数
来源:互联网 发布:linux搭建cdn spuid 编辑:程序博客网 时间:2024/06/05 16:17
今天被一哥们叫了看了一段程序。
里面有这样一段代码:
C/C++ code
int * (*func(int n))[3];
反应如下:
这是一个数组。
这是一个指针数组。
这是一个函数指针数组。
到后面又看到然后有这样的用法:
C/C++ code
func(n_temp);
这难道是一个函数???
那么[3]又表示什么呢。
然后就分析了下。
后来才发现原来()的优先级比*高。
那么这是一个函数指针的想法肯定是错的。
下边写下午简单的分析。
int func(int n);
这当然是一个函数(具有一个int型参数)。
int (*func(int n));
这是一个具有一个int型参数,并且返回值是一个指针的函数。
int (*func(int n))[3];
这又是什么意思呢?
先看
int (*arr)[3];
arr是指向 具有三个整型元素数组的指针。
那么
int (*func(int n))[3];
是一个函数指针数组?没这种说法。
是一个数组指针函数?好像还是不对。。。
因为c/c++里面不允许返回数组的。
所以只能是返回类型是一个数组指针。
那么:
int * (*func(int n))[3];
这是一个具有一个int型参数,并且返回值是一个指向数组的指针。
而这个数组又是具有三个int指针元素的数组。
里面有这样一段代码:
C/C++ code
int * (*func(int n))[3];
反应如下:
这是一个数组。
这是一个指针数组。
这是一个函数指针数组。
到后面又看到然后有这样的用法:
C/C++ code
func(n_temp);
这难道是一个函数???
那么[3]又表示什么呢。
然后就分析了下。
后来才发现原来()的优先级比*高。
那么这是一个函数指针的想法肯定是错的。
下边写下午简单的分析。
int func(int n);
这当然是一个函数(具有一个int型参数)。
int (*func(int n));
这是一个具有一个int型参数,并且返回值是一个指针的函数。
int (*func(int n))[3];
这又是什么意思呢?
先看
int (*arr)[3];
arr是指向 具有三个整型元素数组的指针。
那么
int (*func(int n))[3];
是一个函数指针数组?没这种说法。
是一个数组指针函数?好像还是不对。。。
因为c/c++里面不允许返回数组的。
所以只能是返回类型是一个数组指针。
那么:
int * (*func(int n))[3];
这是一个具有一个int型参数,并且返回值是一个指向数组的指针。
而这个数组又是具有三个int指针元素的数组。
函数返回指针是没问题的,数组指针、函数指针等都行
返回数组、函数则不行
仅供聊资。。。。表骂人。
返回数组、函数则不行
仅供聊资。。。。表骂人。
- 关于指针数组指针做为返回类型的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于函数指针数组与返回数组指针的函数
- 关于指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针
- 返回数组指针的函数
- 返回数组指针的函数
- 关于函数返回值为指针类型的分析
- 关于函数返回值为指针类型的分析
- 关于函数返回值为指针类型的分析
- 返回类型是函数指针的函数指针 类比复杂的数组声明
- 指针常量/常量指针 数组指针/指针数组 函数指针/指针函数 返回函数指针的函数/返回数组指针的函数
- 函数指针数组与返回数组指针的函数
- 函数返回数组指针
- 函数返回数组指针
- 函数返回指针数组
- 嵌入式Linux知识:S3C2440上 MMC/SD卡驱动实例开发讲解(1)
- Ruby on Rails入门例子(Ruby1.8.6 gem 1.3.1 Rail 2.2.3)
- AJAX的POST方法传递数据
- iPhone Dev Center申请
- Response.ContentType 详细列表
- 关于指针数组指针做为返回类型的函数
- mysql sum()函数的使用
- 流程图帮助你5分钟理解 4.0前后多任务流程
- linux awk数组操作
- 忘记了mysql密码怎么办
- C# HashTable
- vxworks串口的初始化和读写
- 架构师的经典语录
- shell 跟踪选项