int main()
{
int a=-1, b=-1;
if (&a>&b)
printf("%d", &b - &a);
return 0;
}
以上代码的结果你能推理出来吗。其结果如下
以上代码中由两个重点
1.&a>&b
如果你了解内存就会知道,函数中越早申请的变量地址越大,因此a的地址是比b高的,由于他们都是int型,因此他们的地址允许相减与大小的比较。
2.&b-&a
打开内存可以看到
a与b的内存地址如图所示,因此,&b-&a得到的结果就是代表ab两元素之间距离几个元素的位置,结果为-3,若是&a-&b那么结果为3.