CPP--借助神器VS理解内存存储
之前也有想了解这些,第一个不是学底层的不知道从何理解,第二个上网搜概念,大牛们三言两语就结束了,举得例子也比较复杂,对于非C方向的可能有点吃力,所以一直没理解。
今天偶然发现原来还要内存窗口之说,就慢慢的打开了思路,形成了自己的理解,有不当之处欢迎指出,小子感激不尽
调试的时候先打开内存窗口:
监视一下i的地址,在内存窗口里面找到这个值,发现里面有个32(50转换成16进制就是32)
验证一下下面的确是16进制
我的理解是:
这次把int改成16进制再看看调试结果:CPU是x86、ARM架构基本上都遵循 小端对齐(高地址放高位,低地址放低位)
图中很明显,内存地址越下面的越大(0x0018FBF4 > 0x0018FBB8),我们监控的地址明显是低地址
0x12345678,高位是1,低位是8。我画张转换图
然后解释下,为什么占了4个
int,占4个字节(byte),而1byte=8个bit
所以看图:
再根据低低高高的原则,就是这样放了
验证一下我的想法:(1不够了,所以用0补)
内存中存的是2进制的数,现在我们进行逆推,自然就有了这幅图:
吐槽一下,尼玛,上学一直不太明了的东西,在VS这个神器下竟然解决了!!
扩展:
内存地址位数其实也有讲究,把VS切换到X64下,发现内存地址也长了许多
X86的是8位,也就是1byte,同理可推X64的是2byte(各个环境不同这个值可能不太一样)
CPP--借助神器VS理解内存存储的更多相关文章
- CPP--借助神器VS理解内存存储(含大小端对齐)
单位,补码之类的可以看这个:http://www.cnblogs.com/dotnetcrazy/p/8178175.html 先说说大小端对齐的事情,然后再看: 内存最小单位==>Byte,i ...
- memcached全面剖析–2. 理解memcached的内存存储
Slab Allocation机制:整理内存以便重复使用 最近的memcached默认情况下采用了名为Slab Allocator的机制分配.管理内存. 在该机制出现以前,内存的分配是通过对所有记录简 ...
- memcached全面剖析--2.理解memcached的内存存储
下面是<memcached全面剖析>的第二部分. 发表日:2008/7/9 作者:前坂徹(Toru Maesaka) 原文链接:http://gihyo.jp/dev/feature/01 ...
- C/C++内存存储
#include <stdio.h> #include "string.h" #include "malloc.h" void Swap(int a ...
- C/C++内存存储问题
#include <stdio.h> #include "string.h" #include "malloc.h" void Swap(int a ...
- 理解Javascript_01_理解内存分配
理解Javascript_01_理解内存分配 转载自:http://www.cnblogs.com/fool/archive/2010/10/07/1845226.html 在正式开始之前,我想先 ...
- spark 源码分析之十六 -- Spark内存存储剖析
上篇spark 源码分析之十五 -- Spark内存管理剖析 讲解了Spark的内存管理机制,主要是MemoryManager的内容.跟Spark的内存管理机制最密切相关的就是内存存储,本篇文章主要介 ...
- [转帖]JVM—深入理解内存模型与垃圾收集机制
JVM—深入理解内存模型与垃圾收集机制 https://juejin.im/post/5d68dc9ee51d4561ad6548f7 前言 Java是一种跨平台的语言,当初其设计初衷也是为了解决各个 ...
- Redis内存存储结构分析
1 Redis 内存存储结构 本文是基于 Redis-v2.2.4 版本进行分析. 1.1 Redis 内存存储总体结构 Redis 是支持多key-value数据库(表)的,并用 RedisDb 来 ...
随机推荐
- JAVA基础:自己构造一个按递增排列的数组,用户输入一个数,插入适当位置
- 2929: [Poi1999]洞穴攀行
2929: [Poi1999]洞穴攀行 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 80 Solved: 41[Submit][Status][Di ...
- Java设计模式之《调停者模式》及应用场景
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6518603.html 调停者模式. 我们想象一下这样的场景:一个系统内部通过许多的类互相之 ...
- iOS 集成Weex入门教程
前言 自Weex发布伊始, 其口号 "Write Once, Run Everywhere"就吸引了大批前端与客户端程序猿纷纷入坑, 我也不能独善其中. 就我目前所学习Weex的经 ...
- Bootsrap 的 Carousel
一.简介 Carousel 就是指轮播图,这里 有完整的代码例子.它可以很简单的就构造出来,结构如下: div.carousel.slide[data-ride="carousel" ...
- 隐性URL与显性URL区别与SEO考虑
隐性URL与显性URL经常在实现页面跳转的时候用到,这两种方式有什么区别,各自对SEO有什么影响?看一下阿里云的官方文档解释: 显性URL转发: 例如: http://b.com/ 指向 http:/ ...
- Python快速入门(4)
输入输出: open() read() readine() readlines() write() pickle模块可以做序列化操作,持久保持对象的信息. 我们可以很容易的读写文件中的字符串.数值就要 ...
- MYSQL性能优化--分库分表
1.分库分表 1>纵向分表 将本来可以在同一个表的内容,人为划分为多个表.(所谓的本来,是指按照关系型数据库的第三范式要求,是应该在同一个表的.) 分表理由:根据数据的活跃度进行分离,(因为不同 ...
- POJ2352Stars【树状数组】
Stars Description Astronomers often examine star maps where stars are represented by points on a pla ...
- XJOI1657&Codevs1255搭积木【树状动规】
搭积木 一种积木搭建方式,高为H的积木,最底层有M个积木,每一层的积木数是他的低一层的积木数+1或-1.总共有N个积木.(且每行积木数不超过10)比如上图N=13 H=6 M=2. 输入格式: 第一行 ...