在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面试题及答案
Sep 08 面试题
关联、聚合(Aggregation)以及组合(Composition)的区别
Feb 29 面试题
定义一结构体数组表示分数,并求两个分数相加之和
Jun 11 面试题
SQL面试题
Dec 09 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
Jun 13 面试题
什么是跨站脚本攻击
Dec 11 面试题
Can a struct inherit from another struct? (结构体能继承结构体吗)
Sep 25 面试题
C#基础面试题
Oct 17 面试题
介绍一下write命令
Aug 10 面试题
新媒传信软件测试面试题
Feb 24 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
Dec 04 面试题
Unix里面如何在后台运行程序
Oct 14 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 #面试题
C语言面试题
May 19 #面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
You might like
php网站被挂木马后的修复方法总结
2014/11/06 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
php实现微信扫码支付
2017/03/26 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Python 内存管理机制全面分析
2021/01/16 Python
迪奥官网:Dior.com
2018/12/04 全球购物
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
介绍一下gcc特性
2012/01/20 面试题
精细化工应届生求职信
2013/11/17 职场文书
开门红主持词
2014/04/02 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
电力工程合作意向书
2015/05/11 职场文书
师范生见习自我总结
2015/06/23 职场文书
Node.js实现断点续传
2021/06/23 Javascript
【2·13】一图读懂中国无线电发展
2022/02/18 无线电