以下分三种情况:

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

 

posted on 2016-07-26 11:18  人生一世,草木一秋。  阅读(131)  评论(0编辑  收藏  举报