当前位置:网站首页>C专家编程 第9章 再论数组 9.1 什么时候数组与指针相同
C专家编程 第9章 再论数组 9.1 什么时候数组与指针相同
2022-08-09 02:48:00 【weixin_客子光阴】
千万千万,绝不要忘了C语言在表达式中把一个类型为T的数组的左值当作是指
向该数组的第一个元素的指针。 ---C程序员名言(传说)
什么时候数组和指针相同
声明本身还可以进一步分成3中情况:
*外部数组(external array)的声明;
*数组的定义(记住,定义是声明的特殊情况,它分配内存空间,并可能提供一个初始值);
*函数参数的声明。
所有作为函数参数的数组名总是可以通过编译器转换为指针。在其他所有情况下(最有趣的情况就是“在一个文件中定义为数组,在另一个文件中声明为指针”)数组的声明就是数组,指针的声明就是指针,两者不可混淆。但在使用数组(在语句或表达式中引用)时,数组总是可以写成指针的形式,两者可以互换。
extern,如extern char a[];不能改写指针的形式
声明 定义,如char a[10];不能改写成指针形式
函数的参数,如func(char a[]); 可以自行选择数组形式或者是指针形 式,只要你喜欢
数组
在表达式中使用 如c = a[i]; 可以自行选择数组形式或者是指针形式,只要你喜欢
图9.1 数组和指针相同的时候
然而,数组和指针在由编译器处理时是不同的,在运行时的表示形式也是不一样的,并可能产生
不同的代码。对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。
边栏推荐
- SwiftUI * SwiftUI 4.0 全新的导航系统
- <爆>2022中文版-《海外博士申请指南-材料准备、时间线、套磁、面试及录取》免费分享
- 2022年最流行的自动化测试工具有哪些?全网最全最细都在这里了
- Jenkins configuration nail notification
- 二分搜索法和二叉搜索树
- Building PO layered architecture of automated testing framework from 0
- Hudi从内核到实战介绍
- 最近看到很多人想自学或者报班但是不清楚如何选择,我今天就和大家说说
- MySQL相关知识 和 数据的存储相关知识
- 接口自动化测试-接口封装思想
猜你喜欢
使用TensorRT对AlphaPose模型进行加速
【扫雷--2】
数学基础(四)极大似然估计、误差的高斯分布与最小二乘估计的等价性
全文翻译:Multimodal Neural Networks: RGB-D for Segmantic Segmentation and Object Detection
OJ:L3-021 神坛 伪解 排序后遍历
Take you do interface test from zero to the first case summary
Tricore架构上的调试案例
The building had been registry cluster, load balancing
MES对接Simba实现展讯平台 IMEI 写号与耦合测试
CI/CD:持续集成/持续部署(难舍难分)
随机推荐
Redis中SDS简单动态字符串
数字 05 verilog&vivado2018.2零散笔记
按钮点击动画
LintCode 146. 大小写转换 II
Json之JArray的使用方法
JS 将对象拆开拼接成 URL
Likou Brush Question Record 3.1-----977. Square of ordered array
【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
数字 01 Vivado2018.2安装及实操
Lottie进阶和原理分析
JS 截取数组的最后几个元素
MySQL相关知识 和 数据的存储相关知识
Apache站点下载大文件自动中断或者文件不完整
数学基础(四)极大似然估计、误差的高斯分布与最小二乘估计的等价性
【无标题】
基于JMF视频聊天
【图像增强】基于Step和Polynomial 滤波实现图像增强附matlab代码
图论相关知识
如何实现canal数据同步
接口的安全性测试,应该从哪些方面入手?