前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言:数组与指针

C语言:数组与指针

作者头像
用户6755376
发布2020-04-14 17:56:49
1.6K0
发布2020-04-14 17:56:49
举报

对于数组元素的使用,采用的是数组名加下标的方式。

比如有数组 int a[10]; 里面10个元素分别是 a[0]、a[1]、a[2]......a[9]。

通常对于数组,我们使用循环处理,例如有变量 int i;

在循环里面 i 的值从 0-9变化,那么a[i] 就依次对应数组第一个元素 a[0]到最后一个元素a[9]。

引用数组元素,还有另外两种方式。

首先,我们要知道数组名a代表的含义,它表示的是首地址,数组第一个元素a[0]的地址。数组在内存空间位置是固定的,地址不变,这也就是为什么不能给数组名a赋值或者改变它的值

那么a+1是什么意思呢?很多人误以为,那就是首地址加一呗。a+1表示的是数组里面第二个元素的地址。也就是说不管是int类型的数组,每个int元素占4个字节,还是char类型的数组,每个元素占1个字节,a+1对应的都是a[1]的地址,这个加一可不是地址具体的值+1。那对应 a+i表示a[i]的地址。

知识点回顾:

&是取地址运算符,如有 int a; 即有一个小盒子里面存放的数据起名叫a,&a就是取a的地址,即该盒子的编号。

*(地址)是取值运算符,这里*是解引用操作符,可以理解成打开对应地址编号的盒子,取出里面的数据。*(&a) 就是打开a对应的小盒子,取出里面的数据,即*(&a)和a等价。

a+i 等价于 &a[i]

*(a+i) 等价于 a[i]

第二种方式就是直接使用指针来引用数组元素。定义指针 int *p;

使用p=a;或者p=&a[0]让指针指向数组第一个元素a[0],那么通过指针p的移动,如p++等也可以遍历数组所有元素。

代码示例(3种方式,通过循环给数组a里面10个元素依次赋值1-10):

代码语言:javascript
复制
for(i=0;i<10;i++)
 a[i] = i+1;
代码语言:javascript
复制
for(i=0;i<10;i++)
 *(a+i) = i+1;
代码语言:javascript
复制
for(p=a,i=0;i<10;i++,p++)
 *p = i+1;

学习有困难怎么办,快来加入微信群和大家交流吧。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机二级C语言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档