指针变量的加减运算

  1. 指针变量可以加减,但是只能与整型数据加减。此时加减的含义并不是其地址值进行了加减,而是与指针指向的数据类型相关联。如果指针变量 p 的值是0x20000000,那么 p=p+2 的值并不是 0x20000002,如果在 32 位的操作系统上,p 是指向整型数据的指针变量,那么 p=p+2 之后,p 的地址值变成 0x20000008,也就说地址值加了: sizeof(int)*2。加减的数字是以指针指向的数据类型为量度的,p+2 表示 p 在内存中前移两个int的距离,如果 p 不是 int 类型,其他类型道理也是一样。同样指针与整型数据相减也是同样的道理。指针变量的自加和自减实际上是与整数 1 的加减运算。

  2. 指针之间可以相减,但不可以相加。两个指针变量(同一类型)相减表示两个指针指向的内存位置之间相隔多少个元素(不是字节数),例如对于 int 类型的指针 p1 和 p2, p1-p2 的意义表示他们之间相隔多少个 int 类型的元素。同样对于其他类型的指针变量之间相减的意义也是一样。

  3. 指针之间可以比较大小。但是同样也限于两个相同类型的指针变量,不同类型的指针变量之间比较大小没有任何意义。指针之间的大小比较的意义,表示在内存中他们指向的位置的高低关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值