1. 字节和地址为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。
1> 内存以“字节为单位”
0x表示的是十六进制,不用过于纠结,能看懂这些数字之间谁大谁小就行了
2> 不同类型占用的字节是不一样的,数据越大,所需的字节数就越多
2. 变量的存储1> 所占用字节数跟类型有关,也跟编译器环境有关
2> 变量实例
int b = 10;
int a = 20;
内存由大到小寻址,优先分配内存地址较大的字节给变量。b的内存地址比a大
每个变量都有地址:第一个字节的地址就是变量的地址
3> 查看内存地址:
int a;
PRintf("a的地址是:%p\n", &a);
4> 注意
在变量未经初始化之前,不要尝试使用变量的值
int a;
printf("a的值是:%d\n", a);
上面的写法是不建议的
3.课程代码
1#include <stdio.h>234//1.内存寻址由大到小,优先分配内存地址比较大的字节给变量56//2.变量越先定义,内存地址就越大78//3.取得变量的地址:&变量名910//4.输出地址:%p1112//5.一个变量一定先进行初始化,才能使用131415intmain()16{17//内存寻址由大到小18inta =10;1920intb =20;2122intc;2324//&是一个地址运算符,取得变量的地址25//%p用来输出地址26//0x7fff56f09bc827printf("a的地址是:%p\n", &a);28//0x7fff56f09bc429printf("b的地址是:%p\n", &b);30//0x7fff56f09bc031printf("c的地址是:%p\n", &c);3233//由于变量c没有经过初始化,所以直接拿来使用是不对的34//int d = c + 1;353637printf("c的值是%d\n", c);3839return0;4041}