指针相减
#include?<stdio.h>
void?main()
{
?int?a[5]={10,20,30,40,50};
?int?*p,*q;
?p=&a[0];
?q=&a[2];
?printf("%d,%d,%d,%d,q-p=%d\n",*p,*q,p,q,q-p);
}
得出結果是10,30,1245036,1245044,q-p=2
q-p又得2?指針相減就是得出兩個指針之間差距的元素個數 INT型占四個字節,所以a[0]和a[2]之間相差的地址為8
void?main()
{
?int?a[5]={10,20,30,40,50};
?int?*p,*q;
?p=&a[0];
?q=&a[2];
?printf("%d,%d,%d,%d,q-p=%d\n",*p,*q,p,q,q-p);
}
得出結果是10,30,1245036,1245044,q-p=2
q-p又得2?指針相減就是得出兩個指針之間差距的元素個數 INT型占四個字節,所以a[0]和a[2]之間相差的地址為8
轉載于:https://www.cnblogs.com/lancidie/archive/2011/03/31/2000988.html
總結
- 上一篇: 解决C++代码单元测试中的难题-不可验证
- 下一篇: 今天你微博了吗?