在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...

面试题 相关文章推荐
天逸系统(武汉)有限公司Java笔试题
Dec 29 面试题
怎么处理XML的中文问题
Mar 26 面试题
试述DBMS的主要功能
Nov 13 面试题
北京RT科技有限公司.net工程师面试题
Feb 15 面试题
什么是.net
Aug 03 面试题
SQL注入攻击的种类有哪些
Dec 30 面试题
南京某公司笔试题
Jan 27 面试题
软件工程师面试题
Jun 25 面试题
如何开发一个JQuery插件
Jul 28 面试题
Python中pass语句的作用是什么
Jun 01 面试题
25道Java面试题集合
May 21 面试题
程序员跳槽必看面试题总结
Jun 28 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 #面试题
C语言面试题
May 19 #面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
Python制作爬虫采集小说
2015/10/25 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
下载官网python并安装的步骤详解
2019/10/12 Python
python实现随机加减法生成器
2020/02/24 Python
Python while true实现爬虫定时任务
2020/06/08 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
《夏夜多美》教学反思
2014/02/17 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
辩论赛新闻稿
2015/07/17 职场文书
大学同学聚会感言
2015/07/30 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang