当前位置:网站首页>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 3.1-----977. Square of ordered array
高性能 MySQL(十二):分区表
Solve the Final Fantasy 13-2 Clock Puzzle with DFS
2022年最流行的自动化测试工具有哪些?全网最全最细都在这里了
1261. 在受污染的二叉树中查找元素
时间复杂度和空间复杂度
online schema change and create index
(面试题)面试官为啥总是让我们手撕call、apply、bind?
搭建Eureka注册中心集群 ,实现负载均衡
随机推荐
Recently, I have seen a lot of people who want to study by themselves or enroll in classes but don’t know how to choose. I will tell you about it today.
Kubernetes:(十三)secret与configmap的那些事
VSCode使用总结
20220524搜索和排序:搜索二维矩阵II
(面试题)面试官为啥总是让我们手撕call、apply、bind?
二分搜索法和二叉搜索树
USB 触摸在竖屏时校准
JavsScript系列-Promise的错误捕获
Cyclictest 简介 安装 测试
金融行业软件测试面试题(含答案)| 入门指南
Matlab实现异构交通流
【洛谷】P5091 【模板】扩展欧拉定理
What are the most popular automated testing tools in 2022?The most complete and most detailed of the entire network is here
Apache站点下载大文件自动中断或者文件不完整
7月更新速递 | 产品实验室N+1,EasyV For Unreal上线!
1261. 在受污染的二叉树中查找元素
SA-SSD环境搭建——血与泪的教训
[LeetCode84双周赛] [模拟] 6174. 任务调度器 II,[贪心&数学] 6144. 将数组排序的最少替换次数
【洛谷】P1082 同余方程
【es6】教程 Symbol数据以及迭代器和生成器