变量内存分析
2019-01-28 本文已影响0人
silasjs
- 变量为什么要有类型?
- 每种类型占用的内存空间不一样,int 4, char 1,double 8
- 只要定义变量,系统就会开辟一块存储空间给我们的变量存储数据,内存寻址是从大到小的
- 越先定义的变量,内存地址越大
- 变量的地址就是所占存储空间最小的字节地址
注意:由于内存寻址是从大到小,所以存储数据也是从大到小的存储,先存储二进制的高位,再存储低位
int num = 9;
int value = 1;
高位-------------------------->低位
00000000 00000000 00000000 00001001(实际存储的是它的补码)
内存中的表现是先这样的:
地址 | 变量名 | 存储的二进制值 | 存储的十进制值 |
---|---|---|---|
0ffc6 | value | 00000001 | 1 |
0ffc7 | value | 00000000 | 1 |
0ffc8 | value | 00000000 | 1 |
0ffc9 | value | 00000000 | 1 |
0ffc10 | num | 00001001 | 9 |
0ffc11 | num | 00000000 | 0 |
0ffc12 | num | 00000000 | 0 |
0ffc13 | num | 00000000 | 0 |
也可以用代码打印证明
char *c = #
for (int i = 0; i < sizeof(num); i++) {
int result = c[i];//取出每个字节中存储的数据
printf("%i\n", result);
}