内存大小端、指针实际应用题分析
来源:互联网 发布:红色警戒 for mac 编辑:程序博客网 时间:2024/05/13 15:20
这是本人第一次发表技术类博客,以后我会将我在工作中学会的,我觉得很经典和重要的技术类问题通过此种方式与大家共享。
本人技术水平有限,可能会发表一些大侠们觉得幼稚的问题,如果觉得幼稚了请跳过,谢谢。如果有什么嵌入式相关的技术问题,大家可以一并提出来我们大家讨论解决。
前言写完,接下来是一个C语言相关的问题。
int main
{
int a[] = {1, 2, 3};
int *p = (int*)((int)a + 1);
printf("%x/n",*p);
}
X86下输出结果为:2000000
为什么输出会是2000000,现在来分析下。
1. 首先我们要知道X86下的内存大小端问题。可通过下面代码测试, 返回1表示小端内存0表示是大端内存。
int memType(void)
{
union test{
int a;
char b;
};
union test c;
c.a = 1;
return c.b;
}
2. 通过上面的代码可以测出X86是小端内存数组a的内存分布:
3.源码int *p = (int*)((int)a + 1)。
(int)a + 1,其实是把a作为数值加一
所以p指向了a所指字节的下一个字节,如图:
4.语句printf("%x/n",*p);以十六进制打印p所指向的地址处的一个int型数据。
因为是小端内存,地位在底地址。
所以:输出为,2000000
- 内存大小端、指针实际应用题分析
- PHP数组实际占用内存大小的分析
- PHP数组实际占用内存大小的分析
- PHP数组实际占用内存大小的分析
- PHP数组实际占用内存大小的分析
- PHP数组实际占用内存大小的分析
- PHP数组实际占用内存大小的分析
- PHP数组实际占用内存大小的分析
- PHP数组实际占用内存大小的分析
- 用matlab解决实际应用题
- PHP数组实际占用内存大小的分析与弱语言
- 应用题分析思路--关注点分离
- 应用题
- 应用题
- 内存大小端
- 获取指针 指向的内存大小
- Android分析进程占内存大小
- 如何分析Android APP 内存大小
- 存储引擎揭秘:基本结构之四——IAM页,IAM链和存储单元
- 使div浮动层显示在Select组件上面
- Windows的空指针赋值分区
- XML的基础和DOCTYPE字段的解析
- From IBM -- 从黑箱到企业: JMX 集成动手实践
- 内存大小端、指针实际应用题分析
- SAP HR 工资核算异常的一些处理方式
- 关于datacall
- c# 代码 添加或删除程序开机启动
- 文件夹加密(转)
- [ASP]无限级分类的简单算法实现及代码重点讲解
- 一些有用的js代码
- 个人学习收集网址
- 自定义网页滚动条