为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。
1> 内存以“字节为单位”
0x表示的是十六进制,不用过于纠结,能看懂这些数字之间谁大谁小就行了
2> 不同类型占用的字节是不一样的,数据越大,所需的字节数就越多
1> 所占用字节数跟类型有关,也跟编译器环境有关
sp在64位编译器中: short:1个字节 int、float:4个字节 long、double:8个字节
编译环境影响:
2> 变量实例
int b = 10;
int a = 20;
l 内存由大到小寻址,优先分配内存地址较大的字节给变量。b的内存地址比a大
l 每个变量都有地址:第一个字节的地址就是变量的地址
3> 查看内存地址:
int a;
printf("a的地址是:%p\n", &a);
4> 注意
在变量未经初始化之前,不要尝试使用变量的值
int a;
printf("a的值是:%d\n", a);
上面的写法是不建议的
原文:http://www.cnblogs.com/lszwhb/p/3647711.html