一个int型指针强制转换成short型 然后自加一 为什么地址还是移动四个字节
而不是两个字节?
想不明白
int型指针转成short型指针 然后自加一 地址移动四位?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
threenewbee 2015-11-13 16:55关注不同的编译器不同。一些编译器,为了优化处理器对内存的访问,所有的变量按照4字节对齐。
我这里是2
http://codepad.org/lNNoQMVC#include <stdio.h> int main() { int * ptr = 0; short * sptr = ((short *)ptr + 1); printf("%d %d", (int)ptr, (int)sptr); }0 2
还有可能,你的括号打错了,导致先算了加1,然后才强制转换。
解决 无用评论 打赏 举报