免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1390 | 回复: 8

数组与指针的疑惑 [复制链接]

论坛徽章:
0
发表于 2004-02-19 11:09 |显示全部楼层
  1. int main()
  2. {
  3.         char a[]="andy he";

  4.         printf("the third char is %c.\nthe third char is %c.\n",2[a],a[2]);
  5.         return(0);
  6. }
复制代码

输出结果为:
[root@t113 test]# ./a
the third char is d.
the third char is d.

有点奇怪哦

另外什么情况下,不能使用指针来引用一个数组

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-02-19 11:13 |显示全部楼层

数组与指针的疑惑

呵呵,它们本来就是一样的,都转化为
*(a+2)。
第二个问题建议你看《c专家编程》,
讲的很详细。

论坛徽章:
0
发表于 2004-02-19 11:33 |显示全部楼层

数组与指针的疑惑

对 2[a] 这种写法, 熟悉汇编的人会 "feel at home"

论坛徽章:
0
发表于 2004-02-19 12:21 |显示全部楼层

数组与指针的疑惑

感谢

论坛徽章:
0
发表于 2004-02-19 12:26 |显示全部楼层

数组与指针的疑惑

[quote]原帖由 "YeLLoW"] 感谢[/quote 发表:


是发错地方了还是穿错了?     

论坛徽章:
0
发表于 2004-02-19 14:18 |显示全部楼层

数组与指针的疑惑

从他的头像可以看出人家刚睡醒,牙还没刷。。。

论坛徽章:
0
发表于 2004-02-19 14:35 |显示全部楼层

数组与指针的疑惑

只是想知道编译器是怎么分析2[a]和a[2]的

总感觉2[a]不满足C语言的命名规则吧

论坛徽章:
0
发表于 2004-02-19 14:49 |显示全部楼层

数组与指针的疑惑

x[y]

x, y 中一个是地址,一个是偏移就行。无论哪中写法,编译器都将其转化为: *(x+y)

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-02-19 14:56 |显示全部楼层

数组与指针的疑惑

[quote]原帖由 "yfhe"]C语言的命名规则吧 [/quote 发表:

定义数组的时候肯定不能这样了,
可引用数组中的元素时,可以的呀,
只是这样我们都不习惯,所以基本不用了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP