免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: unistd
打印 上一主题 下一主题

严重声明:C语言中不存在数组的类型!它仅仅是一个概念! [复制链接]

论坛徽章:
0
101 [报告]
发表于 2009-12-21 21:30 |只看该作者
原帖由 modoke 于 2009-12-21 21:24 发表



a和b不是一个类型,为什么非得说a是个什么类型?
对编译器来说,a代表着你要维护一个数据结构,指针仅仅知道一个地址,你笨想一下,编译器是咋知道那个100的?
所以说数组名a不仅仅是个存地址的指针,要 ...


看来你是C的初学者,char  a[常量]; 代码里的任何常量编译器都知道

论坛徽章:
0
102 [报告]
发表于 2009-12-21 21:41 |只看该作者
原帖由 论坛热点 于 2009-12-21 21:30 发表


看来你是C的初学者,char  a[常量]; 代码里的任何常量编译器都知道


faint~   声明一个数组时,编译器将根据声明所指定的元素数量为数组保留内存空间,然后再创建数组名,它的值是一个常量,指向这段空间的起始位置。也就是将a[0]的地址存到符号表中a的相应信息位置。

至于a = b不通过 ,实在是因为数组名的值是常量,你不能去这样复值!也就是编译器要保护数组名!
假设char a[]="XXXX"; char *b="YYYY";
符号表是这样的

name:a        adress:1000 (1000单元就是XXXX的首地址)
name:b        adress:9000 (9000单元存的是YYYY的首地址,假设8000)
那么a就是1000+i;
而 b要在9000的地址那里取来值8000,再用8000+i

[ 本帖最后由 modoke 于 2009-12-21 22:26 编辑 ]

论坛徽章:
0
103 [报告]
发表于 2009-12-22 10:23 |只看该作者
c对汇编的一个改进呢就是--引进类型的概念。
如果你觉得不方便,为什么不直接使用汇编呢?

编程是为了解决实际工作中的问题,而不是玄技!
所以要权衡!!不能一味地为技巧而技巧。

论坛徽章:
0
104 [报告]
发表于 2009-12-22 10:30 |只看该作者
这个帖子该结束了,最终LZ获胜!
如果你想回帖,请先看ekek86 在#57楼的回复和我在#75楼的回复

论坛徽章:
0
105 [报告]
发表于 2009-12-22 10:35 |只看该作者
原帖由 论坛热点 于 2009-12-22 10:30 发表
这个帖子该结束了,最终LZ获胜!
如果你想回帖,请先看ekek86 在#57楼的回复和我在#75楼的回复

为什么这么说呢?这样讨论有什么不好吗?
有些问题在讨论中才能加深印象。

论坛徽章:
0
106 [报告]
发表于 2009-12-22 10:36 |只看该作者
原帖由 liuty2006 于 2009-12-22 10:35 发表

为什么这么说呢?这样讨论有什么不好吗?
有些问题在讨论中才能加深印象。

难道你对#57楼和#75楼的回复还有异议么?

论坛徽章:
0
107 [报告]
发表于 2009-12-22 10:45 |只看该作者

回复 #106 论坛热点 的帖子

你总是提#57楼和#75楼,有意思吗?
难道是这个讨论的标准答案?
有时讨论的意义不在结果,而在讨论的过程中弄清一些模糊的概念。

论坛徽章:
0
108 [报告]
发表于 2009-12-22 10:47 |只看该作者
原帖由 liuty2006 于 2009-12-22 10:45 发表
你总是提#57楼和#75楼,有意思吗?
难道是这个讨论的标准答案?
有时讨论的意义不在结果,而在讨论的过程中弄清一些模糊的概念。

还有什么模糊的概念?

论坛徽章:
0
109 [报告]
发表于 2009-12-22 10:50 |只看该作者

回复 #108 论坛热点 的帖子

对你这样的什么都清楚的大牛,自然可以忽略此贴。
而对于我这样的初学者,还是收益多多:)

论坛徽章:
0
110 [报告]
发表于 2009-12-22 10:52 |只看该作者
而且楼主提出此问题,也是在深入学习c后的感想。否则,也不会提出这样的问题。
虽然,有些学院气--但还是有点意思的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP