数组与指针的异同

我们定义一个数组和指针

int  arry[  ] = {0, 4 ,7, 8}

int  *ptr;

ptr = arry;(或者ptr = &arry[0])


首先我们要先了解一些概念:

0.数组实际上是指针的变相形式

1.指针的数值就是它指向的对象的地址

2.在指针前运用运算符*就可以得到该指针所指向对象的数值

如:*ptr = 0

       *(ptr+1)= 4

在这里顺便说一下*(ptr+1)与*ptr+1的区别,由于间接运算符*的优先级高于+,所以*ptr+1相当于(*ptr)+1,也就是说*ptr+1等于第一个元素的值(*ptr =0)加上1等于1

3.对指针加1,等于对指针的值(地址)加上它所指向的对象字节的大小(假设指针以2个字节单位增加)

如:arry  + 2  =  &arry[2]  /*相同的地址*/

        *(arry  + 2)  =  arry[2] /*相同的值*/

      *(ptr+1)  = arry[1] 等于4


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值