sizeof(long)返回值是4,但是为啥*p=0x100;p+=sizeof(long)结果是0x110?
sizeof(long)返回值是4,但是为啥*p=0x100;p+=sizeof(long)结果是0x110?//指针运算测试
void pstringTest()
{
int *p=0x100;
p+=sizeof(long);
printf("%x \n",p); //输出0x110
printf("%d \n",sizeof(long));//输出4
}
??????printf("%x \n",p); //输出为啥不是0x104????? 这里 p 指针是 int ,p + 1,代表加向下一个 int ,这里加 4 相当于你加了4个int 的地址, 4个int 为十进制的16,转换为16进制为10,所以指向了 110 地址处
还望采纳 p是int*类型p每加一个 相当于加一个int那么长 你加了4个int那么长 就是16 我叫MD 发表于 2019-8-30 13:52
这里 p 指针是 int ,p + 1,代表加向下一个 int ,这里加 4 相当于你加了4个int 的地址, 4个int 为十进 ...
谢谢点拨
页:
[1]