C++指针的算术运算操作

short int height[10]; //int型的数组(short int 每个数据2字节)
cout <<  "height       "<< height << endl 
     <<  "height+1     "<< height + 1 << endl
     <<  "&height[0]   " <<  &height[0] << endl
     <<  "&height+1    "<< &height + 1<< endl
     <<  "height+9     "<< height+9 << endl
     << "height+10    " << height + 10 << endl;

结果:

height       0136F900
height+1     0136F902
&height[0]   0136F900
&height+1    0136F914
height+9     0136F912
height+10    0136F914
  • height 与 &height[0] 值相等。
  • height+1 = height + 2 字节 = height + 1 个 short int 也即 一个数组元素。
  • height+9 为 height[] 中最后一个元素的地址,height+10 为该数组结束后的第一个地址。
  • &height +1=height+10,即执行 &height+1 的结果是地址跳到整个数组之后第一个地址。

 

上面 &height[0] 就是取得是数组第一个元素的地址,假设地址为 1000;&height 是直接对数组名进行取地址,这个时候就是取得是 height 整个数组的地址,指向包含 10 个元素的 int 型数组,地址范围为 1000~1018;我们知道 height 等价于 &height[0],height+1 会将地址加 2个字节;但 &height+1 就是将地址增加 10*2 个字节。

 

参考c++菜鸟驿站笔记

C++指针算术运算笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值