当前位置:网站首页>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 数组和指针相同的时候
然而,数组和指针在由编译器处理时是不同的,在运行时的表示形式也是不一样的,并可能产生
不同的代码。对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。
边栏推荐
猜你喜欢
Likou Brush Question Record 1.5-----367. Valid perfect squares
2022年最流行的自动化测试工具有哪些?全网最全最细都在这里了
数学基础(四)极大似然估计、误差的高斯分布与最小二乘估计的等价性
[Redis] The core principle of master-slave replication
Redis中SDS简单动态字符串
金融行业软件测试面试题(含答案)| 入门指南
通过安装VNC服务器x11vnc(或vnc4server)和配置x11vnc.service实现远程通过VNC-Viewer访问VNC服务器。
【扫雷--1】
工作小计 rtcp的length和网络字节序
【剑指offer65】不适用加减乘除做加法
随机推荐
通过安装VNC服务器x11vnc(或vnc4server)和配置x11vnc.service实现远程通过VNC-Viewer访问VNC服务器。
科大讯飞笔试题复盘
【洛谷】P5091 【模板】扩展欧拉定理
spark RDD转换算子 sample
Pytest+request+Allure实现接口自动化框架
【扫雷--2】
一款免费的强大办公工具。
按钮点击动画
1160. 拼写单词
用DFS解决最终幻想13-2时钟谜题
MySQL/Oracle字符串分割
1261. 在受污染的二叉树中查找元素
原文翻译:Structure Aware Single-stage 3D Object Detection from Point Cloud
Matlab实现异构交通流
OJ:L3-001 凑零钱 DFS
Qt 信号槽connect的同步与异步处理
Likou Brush Question Record 4.1-----209. The sub-array with the smallest length
二分搜索法和二叉搜索树
并查集相关知识点
Rotate the neon circle