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

面试题 相关文章推荐
描述一下JVM加载class文件的原理机制
Dec 08 面试题
雅虎笔试题(字符串操作)
Mar 24 面试题
经典c++面试题四
May 14 面试题
2019年分享net面试的经历和题目
Aug 07 面试题
什么是反射
Mar 17 面试题
linux下进程间通信的方式
Dec 23 面试题
Linux常见面试题
Oct 04 面试题
介绍一下gcc特性
Oct 31 面试题
百度软件工程师职位
Feb 14 面试题
建龙钢铁面试总结
Apr 15 面试题
给定一个时间点,希望得到其他时间点
Nov 07 面试题
Delphi工程师笔试题
Sep 21 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 #面试题
C语言面试题
May 19 #面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
You might like
提升PHP执行速度全攻略(上)
2006/10/09 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
微信小程序模板和模块化用法实例分析
2017/11/28 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
原生JS实现留言板
2020/03/26 Javascript
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Python处理中文标点符号大集合
2018/05/14 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
python 回溯法模板详解
2020/02/26 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
大型晚会策划方案
2014/02/06 职场文书
金融管理专业求职信
2014/07/10 职场文书
贷款委托书
2014/08/01 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
民事上诉状范文
2015/05/22 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL