关于指针与数组地址的关系

指针:*p:值;p:址;元素:例:int  a,  a:值;&a:址。故*p=a;p=&a为赋值/址。

数组:例  a[10]:a为数组首地址,故p=a,a[0]为值,故p=&a[0],*p=a[0]为赋值/址。

数组元素(一维数组):例  a[10]:a为首地址,a+i为第i个元素的地址;故地址为:p+i=a+i=&a[i];传值为:*(p+i)=*(a+i)=a[i];p[i]=*(p+i)=a[i]。

二维数组:例(*p)[4]为指针数组;表示*p有四个元素,每个元素可指向一个一维数组,故此方法可以表示二维数组;*p[i]表示行首地址,相当于a[i];*p[i]+j表示第i行第j个元素的地址;*(*p[i]+j)表示第i行第j个元素的值;故二维数组用指针可表示为*(*p[i]+j)(因为p[i]=a[i]=a+i=p+i)。

补充:易混淆的几个与指针有关的表示方式:类型标识符  (*指针变量名)[长度](例如:int (*p)[4])表示二维数组行指针的表示方法;类型标识符  (*指针变量名)()(例如   int (*pf)())为指向函数的指针变量定义方法;数据类型  *函数名(形参表){函数体}为指针型函数,即返回值为指针型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值