两个指针相减的结果是什么数据类型?

chujiu0109 2012-02-01 10:03:34
是int? unsigned int? 还是别的什么?
...全文
1139 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
DyanWang 2012-02-02
  • 打赏
  • 举报
回复
to 13楼:
指针的相加减不是对指向的数据进行相加减,地址相减是这种类型的空间间隔几个,地址相加基本上不会用的。前面带 * 号的才是对内容的操作
丰清云淡 2012-02-02
  • 打赏
  • 举报
回复
指针默认是int类型,32位系统占4字节,两个指针相减,其结果可正可负,所以应为int类型。
alang512 2012-02-02
  • 打赏
  • 举报
回复
口算错了
alang512 2012-02-02
  • 打赏
  • 举报
回复

很简单: int *p, *q; int a[3]; p=a; q=&a[2]; q-p就等于 3, 那么自然就是 int 类型了。
小班得瑞 2012-02-02
  • 打赏
  • 举报
回复
ptrdiff_t (long integer or __int64, depending on the target platform)
在CRTDEFS.H头文件中定义
该类型的变量用作保存两个指针作减法运算的结果
Result of subtraction of two pointers.
楼主应该多查查msdn
注明:以上回答来自joyzml
绿野耕夫 2012-02-02
  • 打赏
  • 举报
回复
指针相减就是地址相减。
结果为正,则表示第二个地址在第一个地址之后;结果为负,则表示第二个地址在第一个地址之前。
大部分情况下,int型足够表示机器的地址。有些机器支持用关键字far指明的长指针,这种指针比int型大。地址大小不同,地址的差值也就不同。但用户无须考虑这些因素,因为编译器厂家会在头文件stddef.h中提供一个ptrdiff_t的类型来表示指针相减的类型。
指针相减的结果可以看成是两个地址之间间隔的元素个数,因此,只有指向相同数据类型的指针相减才有意义。
AnYidan 2012-02-02
  • 打赏
  • 举报
回复
两个指针相减的表达式的类型应该 int, 如果要赋值要看你赋予什么类型的 lvalue
qixing1115 2012-02-02
  • 打赏
  • 举报
回复
int 而且要同类型的指针(指向同一个数组的不同元素),结果为两元素的间隔数。
若不指向同一个数组相减没有意义
ANT2AUNTH 2012-02-02
  • 打赏
  • 举报
回复
指针加减,不是就是对指向的数据做加减么?
zhusizhi007 2012-02-02
  • 打赏
  • 举报
回复
支持11楼,应该去查标准,ptrdiff_t
Wolf0403 2012-02-02
  • 打赏
  • 举报
回复
http://www.cplusplus.com/reference/clibrary/cstddef/ptrdiff_t/

ptrdiff_t

This is the type returned by the subtraction operation between two pointers. This is a signed integral type, and as such can be casted to compatible fundamental data types.

<stddef.h>
地狱业火 2012-02-02
  • 打赏
  • 举报
回复
int 吧,因为结果会有正负
pclvmm 2012-02-01
  • 打赏
  • 举报
回复
void *
pathuang68 2012-02-01
  • 打赏
  • 举报
回复
绝大部分情况下是int。但具体的和编译器有关。

绝大部分情况下,指针本身的终极表现形式就是一个unsigned int。但两个指针相加减的结果有可能是正也可能为负,因此是int的。
面包大师 2012-02-01
  • 打赏
  • 举报
回复
int型
MM181 2012-02-01
  • 打赏
  • 举报
回复
指针默认是INT型的
pp25210 2012-02-01
  • 打赏
  • 举报
回复
int
iamnobody 2012-02-01
  • 打赏
  • 举报
回复
int

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧