c++探索
玩玩
C++博客
首页
新随笔
联系
聚合
管理
随笔 - 25 文章 - 29 trackbacks - 0
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔分类
(22)
c++(19)
杂文(3)
随笔档案
(25)
2009年5月 (1)
2008年6月 (1)
2007年7月 (1)
2007年6月 (1)
2007年3月 (1)
2006年9月 (1)
2006年7月 (4)
2006年6月 (3)
2006年5月 (12)
文章分类
(2)
C/C++(2)
QT
文章档案
(2)
2006年5月 (2)
相册
myface
最新随笔
1. 1个短小的实例,显示构建和中序遍历2叉查找树
2. 数组浅析
3. 1秒钟的命运
4. 1个形式怪异的函数
5. 一个 Decorator 模式 例子(原)
6. STL container
7. MFC 中 命令消息传递 (原创)
8. 聚合
9. 一个包容重用
10. Run time type Information
11. 一个com组件的练习
12. MFC中 windows object 和 C++ object
13. STL 乱学二(原创)
14. STL 乱学一(原创)
15. 国内哪家哪家银行的缩写最牛!!!!!!!!!!!!!!!!!!!
16. C++书籍下(转载)
17. c++书籍上(转载)
18. C++ STL简介(转载)
19. 类模板(原创)
20. 函数模板(原创)
搜索
积分与排名
积分 - 55870
排名 - 402
最新评论
1. re: c/c++数组与sizeof的基础知识
写的很深,受益匪浅啊
--秦强
2. re: c/c++数组与sizeof的基础知识
博主写的非常好 解惑了 谢谢 我还转载了
--守望者在这里
3. re: c/c++数组与sizeof的基础知识
写的 很好了。
--shirley
4. re: 1个形式怪异的函数
评论内容较长,点击标题查看
--magz
5. re: c/c++数组与sizeof的基础知识
不错
--caixia
阅读排行榜
1. 类模板(原创)(6132)
2. 八十日带发效忠,表太祖十七朝人物;十万人同心杀敌,留大明三百里江山 纪念伟大的民族英雄阎应元殉国360周年!! (5486)
3. MFC 中 命令消息传递 (原创)(2832)
4. C++书籍下(转载)(2353)
5. 一个 Decorator 模式 例子(原)(2097)
评论排行榜
1. 1个形式怪异的函数(6)
2. 八十日带发效忠,表太祖十七朝人物;十万人同心杀敌,留大明三百里江山 纪念伟大的民族英雄阎应元殉国360周年!! (5)
3. 类模板(原创)(3)
4. Run time type Information(2)
5. MFC 中 命令消息传递 (原创)(2)
1个形式怪异的函数
1
int
(
*
backarry(
int
(
*
arrayname )[
3
]) ) [
3
]
2
{
3
return arrayname;
4
5
};
呵呵,是有点古怪
再来个
1
int
(
*
backarry(
int
(
*
arrayname )[
3
]) ) [
3
]
2
{
3
4
return arrayname;
5
6
};
7
int
(
&
backarry(
int
(
&
arrayname)[
3
]))[
3
]
8
{
9
for
(
int
i
=
0
;i
<
3
;
++
i)
10
{
11
cout
<<
i;
12
}
13
return arrayname;
14
};
15
int
main()
16
{
17
int
array
[
3
]
=
{
1
,
2
,
3
};
18
backarry(
array
);
//
会调用哪个呢??
19
}
posted on 2007-06-12 16:09
黄大仙
阅读(1721)
评论(6)
编辑
收藏
引用
所属分类:
c++
FeedBack:
#
re: 1个形式怪异的函数[未登录] 2007-06-12 17:47
yy
没看懂,我是菜鸟。运行的是第二个。哪本书讲过?
回复
更多评论
#
re: 1个形式怪异的函数 2007-06-12 19:43
xxx
这个不是函数
回复
更多评论
#
re: 1个形式怪异的函数 2007-06-12 21:28
l0he1g
不是函数是什么^_^?只不过第一个的形参是一维数组首地址的引用,而第二个是首地址的地址,所以调用的是第一个。
把int (* backarry(int (* arrayname )[3]) ) [3]改为
不是函数是什么?只不过第一个的形参是一维数组首地址的引用,而第二个是首地址的地址,所以调用的是第一个。
把nt ( backarry(int (* arrayname )[3]) ) [3],
然后用g++编译,报错:
test.cpp:14: 错误:‘backarry’ 声明为返回一个数组的函数
test.cpp: In function ‘int backarry(int (*)[3])’:
test.cpp:17: 错误:从类型 ‘int (*)[3]’ 到类型 ‘int’ 的转换无效.
可知,那样写的只不过是返回一个int (*)[3]或int (&)[3]。
不过个人觉得这样的代码除了去唬人,没有什么实际意义。
回复
更多评论
#
re: 1个形式怪异的函数 2007-06-12 22:26
无情公子
也不算怪!
以下代码在 CodeGear C++ Builder 2007 下编译通过。
int (* backarry(int (*arrayname)[3]))[3]
{
return arrayname;
};
typedef int (*int_array)[3];
int_array backarray2(int_array arrayname)
{
return arrayname;
}
int main(int argc, char* argv[])
{
int_array ia;
backarray2(backarry(backarray2(ia)));
return 0;
}
回复
更多评论
#
re: 1个形式怪异的函数 2007-06-13 22:32
nono
有个所谓的"右左法则",看这种怪东西方便点
回复
更多评论
#
re: 1个形式怪异的函数
2012-11-19 21:29
magz
第一个的函数参数的类型: int (* arrayname )[3]), 它等价于
int ( arrayname [])[3]), 又等价于
int arrayname[][3], 可见需要一个二维数组实参。
因此,在主函数中调用的肯定不是第1个函数,因为实参array是一维数组。
关于类型的讨论,见华中科技大学出版的《C++程序设计实践教程》。
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
1个短小的实例,显示构建和中序遍历2叉查找树
1个形式怪异的函数
一个 Decorator 模式 例子(原)
STL container
MFC 中 命令消息传递 (原创)
聚合
一个包容重用
Run time type Information
一个com组件的练习
MFC中 windows object 和 C++ object
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理