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

面试题 相关文章推荐
普通PHP程序员笔试题
Jan 01 面试题
C语言中break与continue的区别
Jul 12 面试题
广州御银科技股份有限公司试卷(C++)
Nov 04 面试题
枚举与#define宏的区别
Apr 30 面试题
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
Feb 10 面试题
北京RT科技有限公司.net工程师面试题
Feb 15 面试题
Net Remoting把服务器端激活两种模式
Jan 22 面试题
Ref与out有什么不同
Nov 24 面试题
CSMA/CD介质访问控制协议
Nov 17 面试题
标记环介质访问控制协议
Mar 27 面试题
Linux如何为某个操作添加别名
Feb 05 面试题
正隆泰信息技术有限公司上机题
Jun 14 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 #面试题
C语言面试题
May 19 #面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
You might like
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
Terran剧情介绍
2020/03/14 星际争霸
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
深入理解js promise chain
2016/05/05 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
Python入门篇之函数
2014/10/20 Python
Python操作MongoDB详解及实例
2017/05/18 Python
python相对企业语言优势在哪
2020/06/12 Python
Python 发送邮件方法总结
2020/08/10 Python
基于Python实现天天酷跑功能
2021/01/06 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
大四毕业生学习总结的自我评价
2013/10/31 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
HTML基本元素标签介绍
2022/02/28 HTML / CSS
Python学习之迭代器详解
2022/04/01 Python