在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和Javasciprt的区别
Sep 02 面试题
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
Jan 07 面试题
链表面试题-一个链表的结点结构
May 04 面试题
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
Feb 15 面试题
说一下mysql, oracle等常见数据库的分页实现方案
Sep 29 面试题
介绍一下.net和Java的特点和区别
Sep 26 面试题
介绍一下木马病毒的种类
Jul 26 面试题
C#怎么让一个窗口居中显示?
Oct 20 面试题
网上常见的一份Linux面试题(多项选择部分)
Feb 07 面试题
数字天堂软件测试面试题
Dec 23 面试题
亿企通软件测试面试题
Apr 10 面试题
Ruby如何进行文件操作
Jul 17 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 #面试题
C语言面试题
May 19 #面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
You might like
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
Python获取当前函数名称方法实例分享
2018/01/18 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
python如何保证输入键入数字的方法
2019/08/23 Python
Django框架 querySet功能解析
2019/09/04 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
编辑个人求职信范文
2013/09/21 职场文书
办公室主任岗位职责
2013/11/08 职场文书
爱之链教学反思
2014/04/30 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
教师培训简讯
2015/07/20 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
详解pytorch创建tensor函数
2022/03/22 Python
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python