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

面试题 相关文章推荐
WebSphere 应用服务器都支持哪些认证
Dec 26 面试题
一个SQL面试题
Aug 21 面试题
广州迈达威.net面试题目
Mar 10 面试题
接口的多继承会带来哪些问题
Aug 17 面试题
介绍一下Linux文件的记录形式
Apr 18 面试题
Linux开机引导的步骤是什么
Feb 26 面试题
EJB与JAVA BEAN的区别
Aug 29 面试题
如何从一个文件档案的尾端新增记录
Dec 02 面试题
下面代码从性能上考虑,有什么问题
Apr 03 面试题
int和Integer有什么区别
May 25 面试题
什么时候用assert
May 08 面试题
如何现实servlet的单线程模式
Aug 05 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 #面试题
C语言面试题
May 19 #面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
You might like
thinkphp循环结构用法实例
2014/11/24 PHP
smarty实现多级分类的方法
2014/12/05 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
用Python实现读写锁的示例代码
2018/11/05 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
python动态进度条的实现代码
2019/07/03 Python
简单的Python调度器Schedule详解
2019/08/30 Python
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
庆元旦广播稿
2014/02/10 职场文书
出国留学计划书
2014/04/27 职场文书
建筑投标担保书
2014/05/20 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
小学生环保标语
2014/06/13 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
推普周活动总结
2014/08/28 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
Python Django项目和应用的创建详解
2021/11/27 Python