以下分三种情况:
1. 指针 + 整数值
2. 整数 + 整数
3. 指针强制转换为另一个类型后(指针或者是整数) + 整数
测试例子:
1 struct AAA{
int a;
char b[4];
}*p;/*sizeof(AAA) == 8*/
2int *a = 200;//假设该a 在内存中的地址为 p = 0x1000 0000
1. 指针 + 整数值
a + 100 = a + 100 *(size(int)) = a + 100 * 4
p + 100 = p + 100 *(size(AAA)) = p + 100 *8
2. 整数 + 整数
(*a) + 100 = 200 + 100
3. 指针强制转换为另一个类型后(指针或者是整数) + 整数
(Ulong)a + 100 = 200 + 100
(char *)a + 100 = 200 + 100 * 1