两个指针可以相加吗?

tiannuosoft 2010-11-25 09:23:14
两个指针可以相加吗?
...全文
2707 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
joromeh 2012-06-06
  • 打赏
  • 举报
回复
#include <stdio.h>

int
main(void)
{
int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

int *p;

p = &array[0] + (&array[8] - &array[6]);

printf("%d\n", *p);

return 0;
}

虽然计算上没有表示出指针相加,不过从数学的角度是否指针操作?
無_1024 2010-11-25
  • 打赏
  • 举报
回复
是的 相加没有意义 想减有这种用法
eagleql 2010-11-25
  • 打赏
  • 举报
回复
可以相加,也可以相减。。但是相加没有任何的意义。。
ischarles 2010-11-25
  • 打赏
  • 举报
回复
两个指针的相加在编译器中没有被定义,所以编译器的时候会报错
之所以没有定义就是因为指针相加没有意义
robertbo 2010-11-25
  • 打赏
  • 举报
回复
面试问这个问题估计是想考察对指针的理解吧,相减是两个指针在地址上的距离,可以在字符串中截取部分字符,相加后就是一个毫无意义的地址啊
tracyjk 2010-11-25
  • 打赏
  • 举报
回复
指针之间可以相减,但不可以相加:两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数),例如对于int类型的指针p和p1. p1-p的意义表示他们之间相隔多少个int类型的元素。同样对于其他类型的指针变量之间相减的意义也是一样。 指针变量的自加和自减实际上是与整数1的加减运算。
aining0809 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 milkylove 的回复:]

关键是,两个指针相加是没有意义的。两个指针(同类型)相减,可以理解为两个指针之间的距离,相加实在没有意义。
[/Quote]
正解!
wizard_tiger 2010-11-25
  • 打赏
  • 举报
回复
不可以相加,因为相加后得到一个不知所向的地方。
tiannuosoft 2010-11-25
  • 打赏
  • 举报
回复
昨天去面试,就问了这问题,也不知是什么目的,觉得很搞笑!
失落的凡凡 2010-11-25
  • 打赏
  • 举报
回复
关键是,两个指针相加是没有意义的。两个指针(同类型)相减,可以理解为两个指针之间的距离,相加实在没有意义。
wissup 2010-11-25
  • 打赏
  • 举报
回复
两个指针可以相减,不可以相加!加了是什么呀!
zhutianjin4355255 2010-11-25
  • 打赏
  • 举报
回复
什么意思? 指针值相加倒没问题

69,373

社区成员

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

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