在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中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
Feb 06 面试题
"序列点" 是什么
Jul 29 面试题
什么是命名空间(NameSpace)
Nov 24 面试题
什么是托管函数?托管函数有什么用?
Jun 15 面试题
进程的查看和调度分别使用什么命令
Dec 14 面试题
介绍一下gcc特性
Jan 20 面试题
Java程序开发中如何应用线程
Mar 03 面试题
什么是继承
Dec 07 面试题
java程序员面试交流
Nov 29 面试题
为什么要使用servlet
Jan 17 面试题
Servlet都有哪些方法?主要作用是什么?
Mar 04 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
Jan 26 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 #面试题
C语言面试题
May 19 #面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
You might like
php 时间计算问题小结
2009/01/04 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
jQuery select的操作实现代码
2009/05/06 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
Python 常用 PEP8 编码规范详解
2017/01/22 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
python进行文件对比的方法
2018/12/24 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python实现函数极小值
2019/07/10 Python
python搜索包的路径的实现方法
2019/07/19 Python
HTML的form表单和django的form表单
2019/07/25 Python
python 获取计算机的网卡信息
2021/02/18 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
三年级评语大全
2014/04/23 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS