大神些,认真点嘛...
a是整型数组的首地址,我假设是0x20000000。
a+5应该是a[5]的首地址,值为a + 5 * sizeof(int) = 0x20000014
a+2应该是a[2]的首地址,值为a + 2 * sizeof(int) = 0x20000008
所以 (a + 5) - (a + 2) 应该为12才对啊!难道C编译器是先对表达式做优化了
在上例中,我实际编译验证了:
printf("%x\n", (a + 5)) = 0x20000014
printf("%x\n", (a + 2)) = 0x20000008
printf("%x\n", (a + 5) - (a + 2)) = 3
[
本帖最后由 dragonsun7 于 2014-6-20 21:13 编辑 ]