地址相减

1230阅读 0评论2015-06-10 seuqyr
分类:C/C++

转自 http://blog.csdn.net/harvic880925/article/details/8953854   
  如果两个指针指向同一个数组,它们就可以相减,其结果为两个指针之间的元素数目。 即两个指针相减,结果并不是两个指针数值上的差,而是把这个差除以指针指向类型的大小的结果

     假设我住在广场路124号,Mag住在广场路142号,每家之间的地址间距是2(在我这一侧用连续的偶数作为街道地址),那麽Mag家就在我家往前(142-124)/2家,也就是说可以得到我们两家之间相隔8家。 

     也就是说可以利用两个指向同一数组的指针相减得到两个指针之间元素的个数。 

     如果两个指针不是指向同一个数组,它们相减就没有意义了。 

     C本身无法防止非法的指针减法运算,它无法为你提出任何警告或提示。 
上一篇:关于 sizeof && 虚函数 继承
下一篇:数组指针和指针数组