指针运算

定义一个整形的指针*p指向整形数组arr,然后p++;这就有了疑问p++到底是加了什么?有以下几种猜想

1、加了整个数组长度?

2、加了一个字节长度?

3、加了4个字节长度?

1.第一个猜想明显是错的如果给p加一个整个数组的长度,p就会从数组前端跳到末尾这样毫无意义的。

2.整型数组中,每个元素需要4个字节来保存

3.很显然每次p++是加一格数组长度

以下这个程序来验证


总结:指针与数字间的加法,需要进行调整,其调整权重为指针所指向的类型长度,如:其权重就为sizeof(int)

总的计算式为:指针+(数字*权重)。指针与数字之间的减法,与指针加法类似

接着讨论指针与指针之间的运算。

“指针+指针”,这个运算有意义吗?很显然是没有的,我们拿时间来作比喻,下午三点加下午四点得出来的值是7但七没有任何意义。指针之间并不存在加法运算。

“指针-指针”,指针之间的减法计算式为:(指针-指针)/权重

下面是指针运算的程序

指针+数字


指针-指针


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值