C语言问题,请拿稳你的帽子 :)

[复制链接]
3072|15
 楼主| mindshare 发表于 2012-5-30 13:38 | 显示全部楼层 |阅读模式
本帖最后由 mindshare 于 2012-5-30 13:49 编辑

看看如下代码,结果是不是会令你大跌眼镜,你能知道为什么吗?
  1. void main(void)
  2. {
  3. int n,i;
  4. int a[3];

  5. for(i=0;i<3;i++){
  6.   a[i] = i;
  7. }
  8. for(i=0;i<3;i++) {
  9.    n = a[i];
  10. }
  11. for(i=0;i<3;i++)  {
  12.    n = i[a];}
  13. }
tyw 发表于 2012-5-30 13:42 | 显示全部楼层
帽子落脱勒,哈哈
似水无痕 发表于 2012-5-30 17:05 | 显示全部楼层
输入输出都没有,目的也没有,甚至连一个完整的程序都不是,谈什么结果。
似水无痕 发表于 2012-5-30 17:06 | 显示全部楼层
码农语言表达能力都退化了
wfl102824 发表于 2012-5-30 17:27 | 显示全部楼层
xxlin1984 发表于 2012-5-31 10:09 | 显示全部楼层
居然能编译,还能运行,长见识了!
------------------------------------
a[i] = i[a] = *(a+i)

评分

参与人数 1威望 +1 收起 理由
mindshare + 1

查看全部评分

andyding 发表于 2012-5-31 12:08 | 显示全部楼层
n = i[a]     这句不报错?
lch91446 发表于 2012-5-31 12:56 | 显示全部楼层
居然能编译,还能运行,长见识了!
:handshake
wwuchang 发表于 2012-5-31 13:06 | 显示全部楼层
什么编译器,报错能力这么弱啊?
xxlin1984 发表于 2012-5-31 13:57 | 显示全部楼层
9# wwuchang IAR
 楼主| mindshare 发表于 2012-5-31 16:59 | 显示全部楼层
如果不知道 i[a] 为什么不报错,那就是没有理解 数组跟指针的关系
如果没有理解指针,那就是没有弄懂C语言,这就是此题的目的 :)
amwrdfe 发表于 2012-5-31 17:48 | 显示全部楼层
基本上,我觉得所有i[j]之类的东西都可以当指针处理~
cooking12 发表于 2012-5-31 18:24 | 显示全部楼层
烦请你详细解释下 11# mindshare
 楼主| mindshare 发表于 2012-6-1 13:26 | 显示全部楼层
本帖最后由 mindshare 于 2012-6-1 13:28 编辑



还有很多细节问题,请参考 C和指针 或者 C专家编程 或者 C陷阱与缺陷

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yh21ic 发表于 2012-6-2 21:36 | 显示全部楼层
第一次看到这样滴,能通过就神了,惊奇了
wdliming 发表于 2012-6-4 16:34 | 显示全部楼层
嘿嘿,a[i]和i[a]在编译器来说是一个事情,都是通过指针来处理的,只不过,我们不用而已,并且可读性不高!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

114

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部