我似乎无法理解为什么我会收到此错误。对我来说,减法效果很好(产生-3)似乎很奇怪,而加法会给我一个错误。
为什么会这样?,不应该添加返回(0x00000001 + 0x00000002 = 0x00000003)?
#include <stdio.h>
int main()
{
int* x = NULL;
int* y = NULL;
// error: invalid operands to binary + (have ‘int *’ and ‘int *’)
int z = &x[0] + &x[3];
// but this works fine
int z = &x[0] - &x[3];
printf("0x%08x\n", x);
printf("0x%08x\n", &x[0]);
printf("%d", z);
return 0;
}