首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

问一个栈中内存布局的有关问题

2012-02-21 
问一个栈中内存布局的问题intmain(){charp[]abcd printf( %c,%c ,*p,*(p+1))return0}输出结果是a,

问一个栈中内存布局的问题
int   main()
{
      char   p[]   =   "abcd ";
      printf( "%c,%c ",   *p,*(p+1));
      return   0;
}
输出结果是a,b
p中的内容应该是在栈中,栈中的内存布局应该是
高地址       d
    |             c
    |             b
低地址       a
但是Intel的机器不应当是little-endian的吗,那应该是
低地址     --     高地址
      d     c     b       a
啊,
sigh,不知道是哪儿想晕了


[解决办法]
布局 只在特殊情况下考虑。
[解决办法]
没错, 单字节的数据没有little-endian 之说。
[解决办法]
little-endian只对多字节(如DWORD和WORD)有用,尤其在PE文件里面出现得多
0x1e ef
little-endian里面是ef1e这样存储的
单字节的没有这个区别~

热点排行