易混知识点 二维数组的易混表达式的理解

基础A:   定义一个指向一维数组元素的指针变量

 

int a[10];   /*定义a为包含10个整型数据的数组*/

int *p;      /*定义p为指向整型变量的指针*/

方法1: p = &a[0];  // 把a[0]元素的地址赋给指针变量p

方法2: p = a; // 数组名 a 代表数组的首地址(&a[0];)  

以上两种方法等价

而这里应当注意: p是变量 而 a ; &a[0] 都是常量 。

                                 故而 p++是可以的(在利用指针法对数组的元素进行引用时) 而a++ 是不可以的 (a为首地址 常量)

 

基础B: 一维数组指针 *p++  /  * (p++)  /  (*p)++ 的区别

 

1)  *p++,由于++和*同优先级,结合方向自右而左,等价于*(p++)。
      *(p++) 与 *(++p)作用不同。若p的初值为a,则*(p++)等价a[0],*(++p)等价a[1]。
2)  (*p)++表示p所指向的元素值加1。注意与*(p++)  /  *p++  区别
3)   如果p当前指向a数组中的第i个元素,则
         *(p--)相当于a[i--]ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值