指针相减
#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++代码单元测试中的难题-不可验证
- 下一篇: 今天你微博了吗?