指针算数运算

本文详细介绍了指针在进行算术运算时的三种情况:加一个字节、加整个数组和加一个单元格。讨论了指针加减法的调整权重,以及指针相减表示的间隔单元个数,并通过实例解释了不同类型的指针运算规则。
摘要由CSDN通过智能技术生成



指针的算术用算

一、指针加1有三种情况:

1、加一个字节

int main()

{

int arr[10] = {1,2,3,4,5,6,7,8,9,10};

int *p = arr;

*p = 10;                                                 

   //由于arr[0]占4个字节,所以字节分别为100 101 102 103,所以将10转换成十六进制的10即a,一个字节八位所以在a的前面补7个0,此时将这八位数按低地址放地位,低地址在左边的顺序依次存放在100—103中,即0a 00 00 00 ;

p = (int *)((char *)p+1);       //强制转换成字符型用完之后又转换成了int 型

*p = 20;                         // 经过加1之后增加了一个字节并没有跳到arr[1],这就

是为什么结果中arr[1]为0的原因,增加L 一个字节之后字节数就变成了102 102 103 104,然后将这个20存进去,将20转换为16进制即14所以在14的前面补够6个0,即00 00 00 14存进去之后100 102分别存的是0a 14,其他的全部为0;即此时的arr[0]的值就是0x 00 00 14 0a 他的结果为5130;

printf("%d,%d\n",arr[0],arr[1]);              // 此时输出的结果为5130,0;

 

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值