内存地址的问题

loop_k 2010-08-02 09:06:04

void main()
{
int a[3];
a[0] = 0;
a[1] = 1;
a[2] = 2;
int*p,*q;
p = a;
q = &a[2];

cout<<"q = "<<q<<endl
<<"p = "<<p<<endl
<<"q-p="<<q-p<<endl;

system("pause");
}


结果 q = 0012FF64
p = 0012FF5C
q-p = 2

想问一下 怎么会等于2呢 按照16进制想减 应该等于8吧
...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
loop_k 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hpsmouse 的回复:]
认真看书……
指针相减得到的差是元素的个数,不是地址的差……
[/Quote]
哎 。。看来还是要好好看书 多谢啦
ayw215 2010-08-02
  • 打赏
  • 举报
回复
这个就是所谓的指针的步长的概念
2010-08-02
  • 打赏
  • 举报
回复
认真看书……
指针相减得到的差是元素的个数,不是地址的差……

69,373

社区成员

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

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