【学习笔记】【C语言】变量的内存分析

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。就好像酒店是以房间为单位的,每个房间都有一个唯一的房号,我们根据房号就能找到对应的房间。

1. 变量的存储1> 所占用字节数跟类型有关,也跟编译器环境有关

2> 变量实例

int b = 10;

int a = 134;

*内存由大到小寻址

*只存储二进制形式

*每个变量都有地址:第一个字节的地址就是变量的地址

3> 查看内存地址的两种方式:%x和%p

4>查看整数的二进制形式

voidputBinary(intn)

{intbits =sizeof(n) *8;while(bits-->0) {PRintf("%d", n>>bits&1);if(bits%4==0) printf("");

}

printf("\n");

}

2. 负数在内存中的存储

1intmain()2{3intb = -10;4return0;5}

在第3行定义了一个整型变量,它的值是-10。-10在内存中怎样存储的呢?其实任何数值在内存中都是以补码的形式存储的。

正数的补码与原码相同。比如9的原码和补码都是1001负数的补码等于它正数的原码取反后再+1。(取反的意思就是0变1、1变0)那么-10的补码计算过程如下:

1> 先算出10的二进制形式:0000 0000 0000 0000 0000 0000 0000 1010

2> 对10的二进制进行取反:1111 1111 1111 1111 1111 1111 1111 0101

3> 对取反后的结果+1:1111 1111 1111 1111 1111 1111 1111 0110

因此,整数-10在内存中的二进制形式是:1111 1111 1111 1111 1111 1111 1111 0110

3. 取值范围

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航