如我截图所示
正常情况下 地址的分配简单的理解为 按 源代码 从上往下 没有问题
一般情况下 是这样 。 这里可能 编译器 如果优化 或许 会不一样 但是暂时 不考虑这个情况
但是 在你的代码里 这些 变量 是分配到 系统的栈内存 的 栈内存 跟操作系统内核 一样在高位
就是 假设你是32位系统 系统内存 占用2g 内存
那么 你的地址 大概分配情况就行
0x FF FF FF FF 这个是内存的 首地址
然后 往下一直是内核地址
直接到 2g内存结束 大概 位置为 1000 0000 0000 0000 0000 0000 0000 0000 就是 0x 80 00 00 00
然后栈内存的首地址 位置为 0111 1111 1111 1111 1111 1111 1111 1111 就是 0x 7F FF FF FF
从上 往下依次越来越小
所以你看到的确实是 内存地址的值 变小了 你测试的是对的
但是你没有注意 课程里说的 从高地址开始分配
同问。a地址应该比b大才对吧
从上往下分配
地址的分配并不是一定按命名顺序的