在C语言中"指针和数组等价"到底是什么意思?


Posted in 面试题 onMarch 24, 2014
在C语言中对数组和指针的困惑多数都来自这句话。说数组和指针“等价”不表示它们相同, 甚至也不能互换。它的意思是说数组和指针的算法定义可以用指针方便的访问数组或者模拟数组。
特别地,等价的基础来自这个关键定义:
一个T 的数组类型的左值如果出现在表达式中会蜕变为一个指向数组第一个成员的指针(除了三种例外情况); 结果指针的类型是T的指针。
这就是说, 一旦数组出现在表达式中, 编译器会隐式地生成一个指向数组第一个成员地指针, 就像程序员写出了&a[0] 一样。例外的情况是, 数组为sizeof 或&操作符的操作数, 或者为字符数组的字符串初始值。
作为这个这个定义的后果, 编译器并那么不严格区分数组下标操作符和指针。在形如a[i] 的表达式中, 根据上边的规则, 数组蜕化为指针然后按照指针变量的方式如p[i] 那样寻址, 如问题6.2 所述, 尽管最终的内存访问并不一样。如果你把数组地址赋给指针:
p = a;
那么p[3] 和a[3] 将会访问同样的成员。

Tags in this post...

面试题 相关文章推荐
Yahoo的PHP面试题
May 26 面试题
同步和异步有何异同,在什么情况下分别使用他们?举例说明
Feb 27 面试题
xml有哪些解析技术?区别是什么
Apr 26 面试题
利用指针变量实现队列的入队操作
Apr 07 面试题
介绍一下内联、左联、右联
Dec 31 面试题
西部世纪.net笔试题面试题
Apr 03 面试题
linux面试题参考答案(11)
May 01 面试题
软件设计的目标是什么
Dec 04 面试题
一道输出判断型Java面试题
Oct 01 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Jan 27 面试题
介绍一下Java中的static关键字
May 12 面试题
Java基础知识面试题
Mar 25 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 #面试题
C语言面试题
May 19 #面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
You might like
PHP生成静态页
2006/11/25 PHP
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
JS 常用校验函数
2009/03/26 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
Python argv用法详解
2016/01/08 Python
Python实现简单字典树的方法
2016/04/29 Python
浅析Python中的多条件排序实现
2016/06/07 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
Python socket实现简单聊天室
2018/04/01 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Python常用库大全及简要说明
2020/01/17 Python
python中如何设置代码自动提示
2020/07/15 Python
市场营销管理毕业生自荐信
2014/03/03 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
应届毕业生自荐信
2014/05/28 职场文书
物理学专业自荐信
2014/06/11 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
项目备案申请报告
2015/05/15 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏