没有合适的资源?快使用搜索试试~ 我知道了~
C语言数组指针(指向数组的指针)_C语言中文网1
需积分: 0 2 下载量 183 浏览量
2022-08-04
15:16:35
上传
评论
收藏 1.4MB PDF 举报
温馨提示
试读
3页
引入数组指针后,我们就有两种方案来访问数组元素了,一种是使用下标,另外一种是使用指针。1) 使用下标也就是采用 arr[i] 的形式访问数组元素。如果 p 是指
资源详情
资源评论
资源推荐
2017/10/31
C语言数组指针(指向数组的指针)_C语言中文网
http://c.biancheng.net/cpp/html/76.html 1/3
C语言 C++教程 Java教程 Linux QQ交流群:588321099 登录|注册
<上一节 下一节> 关注我们: 微信公众号 新浪微博 QQ交流群:588321099
C语言数组指针(指向数组的指针)
C语言中文网推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:
一对一辅导+一对一答疑+布置作业+项目实践+永久学习。QQ在线,随时响应!
数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素
在内存中是连续排列的,整个数组占用的是一块内存。以 intarr[]={99,15,100,888,252}; 为例,该数组在内存中
的分布如下图所示:
定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第0个元素。在C语言中,我们将
第0个元素的地址称为数组的首地址。以上面的数组为例,下图是arr的指向:
数组名的本意是表示整个数组,也就是表示多份数据的集合,但在使用过程中经常会转换为指向数组第0个元素的
指针,所以上面使用了“认为”一词,表示数组名和数组首地址并不总是等价。初学者可以暂时忽略这个细节,把
数组名当做指向第0个元素的指针使用即可,我们将在VIP教程《数组和指针绝不等价,数组是另外一种类型》和
《数组在什么时候会转换为指针》中再深入讨论这一细节。
下面的例子演示了如何以指针的方式遍历数组元素:
运行结果:
9915100888252
第4行代码用来求数组的长度,sizeof(arr)会获得整个数组所占用的字节数,sizeof(int)会获得一个数组元素所占用
的字节数,它们相除的结果就是数组包含的元素个数,也即数组长度。
第8行代码中我们使用了 *(arr+i) 这个表达式,arr是数组名,指向数组的第0个元素,表示数组首地址,arr+i指
向数组的第i个元素,*(arr+i)表示取第i个元素的数据,它等价于arr[i]。
arr是 int* 类型的指针,每次加1时它自身的值会增加sizeof(int),加i时自身的值会增加sizeof(int)*i,这在
《指针变量的运算》中已经进行了详细讲解。
我们也可以定义一个指向数组的指针,例如:
1
2
3
4
5
6
7
8
9
10
11
12
教程目录
编程基础
C语言初探
变量和数据类型
输入输出
分支结构和循环结构
C语言数组
C语言函数
预处理命令
C语言指针
9.11分钟彻底理解指针的概念
9.2大话C语言指针变量
9.3C语言指针变量的运算
9.4数组指针(指向数组的指针)
9.5字符串指针(指向字符串的指针)
9.6C语言数组灵活多变的访问形式
9.7指针变量作为函数参数
9.8用C语言指针作为函数返回值
9.9二级指针(指向指针的指针)
9.10空指针NULL以及void指针
9.11注意,数组和指针绝不等价
9.12数组在什么时候会转换为指针
9.13指针数组(每个元素都是指针)
9.14一道题目教你玩转指针数组
9.15指针与二维数组
9.16函数指针(指向函数的指针)
9.17只需一招,彻底攻克C语言指针
9.18用main()函数接收控制台数据
9.19对C语言指针的总结
结构体、位运算以及其他
文件操作
C语言调试
首页/C语言入门教程/C语言指针/
C语言辅导班 C++辅导班 算法/数据结构辅导班
首页 C语言教程 C语言和内存 多文件编程 实例精讲 项目实践 C++教程 更多
广
告
01. #include <stdio.h>
02.
03. int main(){
04. int arr[] = { 99, 15, 100, 888, 252 };
05. int len = sizeof(arr) / sizeof(int); //
求
数
组
长
度
06. int i;
07. for(i=0; i<len; i++){
08. printf("%d ", *(arr+i) ); //*(arr+i)
等
价于
arr[i]
09. }
10. printf("");
11. return 0;
12. }
01. int arr[] = { 99, 15, 100, 888, 252 };
02. int *p = arr;
广
告
陈熙昊
- 粉丝: 18
- 资源: 320
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0