“一个指针指向某对象,同时另一个指针指向另外对象的下一地址,两个指针可能相等”是怎么回事?

申祷无 2016-06-06 11:07:54
《C++ Primer》第五版,中文版。p50。
需要注意的是,一个指针指向某对象,同时另一个指针指向另外对象的下一地址,此时也有可能出现这两个指针值相同的情况,即指针相等。

之前在 CSDN 问答上问的:http://ask.csdn.net/questions/256146
有人提到是相邻的导致相等。是否是下面的代码表达的意思:
#include <iostream>
#include <iterator>

using namespace std;

int a[] = { 1,2 };
int i = 4;

int main()
{

int *p = end(a);
if (p == &i) cout << "equ" << endl;

return 0;
}

“另外对象的下一地址”指的是不是尾后迭代器?
...全文
410 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2016-06-07
  • 打赏
  • 举报
回复 1
1)这里必有 p==q
int a[10];
int  *p =&a[9]+1;
int *q =&a[10];
2)这里必有 :px1== py;
struct point{
int x,y;
};

point pt;
int *px1 =&pt.x+1;
int *py =&pt.y;
3)这里 pa1 ==pb 也是有可能的但是就未必是必然的了。
 int a,b;
int *pa1==&a,int *pb=&b+1;
ooolinux 2016-06-06
  • 打赏
  • 举报
回复
可以考虑一下链表的情况
paschen 版主 2016-06-06
  • 打赏
  • 举报
回复
另外对象是某对象的上一个对象,不就相等了吗

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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