在32位小端的机器上,如下代码输出是什么:
2016-07-18 20:11
399 查看
在32位小端的机器上,如下代码输出是什么:
添加笔记
求解答(13)
收藏
纠错
小端机器的数据高位字节放在高地址,低位字节放在低地址。x86结构为小端模式。
pshort占用2个字节,在内存中的16进制为0x01 0x02,对应的16进制数为0x0201。
pshort + 2指向array数组的下标为4的元素,占用2个字节,在内存中的16进制为0x05 0x06,对应的16进制数为0x0605。
pint64的int64类型不确定,但根据名字可以看出占用8个字节,对应的16进制形式为0x807060504030201。
pint + 2占用4个字节,指向的array数组的下标为8的元素,8-11个元素没有指定数组的初始化值,默认为0,因此*(pint + 2)对应的16进制为0。
选B
char array[12] = {0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08}; short *pshort = (short *)array; int *pint = (int *)array; int64 *pint64 = (int64 *)array; printf("0x%x , 0x%x , 0x%llx , 0x%llx", *pshort , *(pshort+2) , *pint64 , *(pint+2));
正确答案: B 你的答案: 空 (错误)
0x201 , 0x403 , 0x807060504030201 , 0x0
0x201 , 0x605 , 0x807060504030201 , 0x0
0x201 , 0x605 , 0x4030201 , 0x8070605
0x102 , 0x506 , 0x102030405060708 , 0x0
添加笔记
求解答(13)
收藏
纠错
小端机器的数据高位字节放在高地址,低位字节放在低地址。x86结构为小端模式。
pshort占用2个字节,在内存中的16进制为0x01 0x02,对应的16进制数为0x0201。
pshort + 2指向array数组的下标为4的元素,占用2个字节,在内存中的16进制为0x05 0x06,对应的16进制数为0x0605。
pint64的int64类型不确定,但根据名字可以看出占用8个字节,对应的16进制形式为0x807060504030201。
pint + 2占用4个字节,指向的array数组的下标为8的元素,8-11个元素没有指定数组的初始化值,默认为0,因此*(pint + 2)对应的16进制为0。
选B
相关文章推荐
- [JavaWeb]表单提交的验证(onSubmit和function的应用)
- [JavaWeb]表单提交的验证(onSubmit和function的应用)
- java.lang.NoClassDefFoundError: weblogic/rmi/extensions/DisconnectListener
- 【python】pathlib库
- Python学习--JSON
- 分享一个php时间段切分为指定段的函数
- 【python】argparse模块
- C/C++笔记(C语言重要问题重讲,内存四区篇)
- 底部Tab栏的实现(附完整代码)
- 提高项目37-各种“棋盘”
- java EE基础知识
- 原型聚类总结
- PHP实现文件上传功能
- Spring面试题
- Spring整合MyBatis(二)源码分析
- C++操作符重载
- 如何避免野指针(详解)
- C++类体系中,不能被派生类继承的有?
- Java并发机制及锁的实现原理
- opencv resize (C/C++/Python)