1.打开compiler explorer,查看汇编指令。
2.由于CPU不能直接访问内存地址,需要通过寄存器,配合方括号,间接访问内存。根据指令集,rip寄存器存放着CPU的下一条指令的地址。变量a的地址就是0x401114 + 0x2f18 = 0x40402c
总结:变量不过是内存地址的别名
3.底层查看类型的字节大小。a的地址:40402c;b的地址:404030;c的地址:404034。可以看出int在底层占用四个字节的内存空间。short两个字节。char一个字节。
4.局部变量
总结:
1.每一个变量,都对应一个内存空间。
2.变量的内省,决定了它占用内存空间的长度。
3.全局变量,静态变量占用的内存地址是全局唯一的,不会随程序的运行而变化。
4.临时变量是栈变量,变量的值,有有效期的限制,变量的地址,会因为不同线程调用而不同,在同一个线程,也会因为调用轨迹不同而不同。