## 数组跟指针的关系

数组跟指针的关系

先简单说一下指针和数组的基本概念

指针是一个变量,声明形式为 int * p,其中 * 号是一个解引用符,变量p储存的是一个地址。数组是一个多个同类型元素的集合体,例如声明一个数组int * a[4]数组,数组名a是一个地址,这个地址跟&a[0]是等价的,也就是数组表示的是第一个数组元素的地址。
指针跟数组的关系
以下文章都以两个变量展开说明
int * p,int a[4]
第一:我们先以地址的形式来理解他们的关系,当指针得到了数组的首地址之后,就可以把指针跟数组一样使用了,因为当指针得到了数组a的首地址后就可以通过解引用来访问数组了,并且指针是一个可修改的左值,可以使用一元运算符自增,例如当p=a之后, * (p+1)==a[1],在这里说一声指针可以进行加减法,但不能进行乘除法,并且指针加一,加的是指向对象的一个储存单元,*(p+1)==a【1】, *( p+2)==a[2], * (p+3)==a[3]。

第二当数组传递给函数时
例如以下函数:
#include <stdio.h>
int main(void)
{
int *p;
int a[4]={1,2,3,4};
ch(a);
return 0;
}
void ch(int *p1)//一个函数头
函数头里面的形参接收一个a数组的地址,因为传过来的值是一个地址,所以形参声明是一个指针,但是还有一种写法,void ch(int p1[])这种写法的形参是数组表达式,第一种是指针表达式,形参是写法有两种。

总结:想学好指针跟数组,从储存地址去理解更简单,直接一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值