C语言变量的实质
就像去电影院观看电影,每个人拿着票根据上面的编号去找对应的位置,然后落座观影。同样的,我们的内存要存放各种各样的数据,内存就好比座位也要进行编号,这就是第一个概念——内存编址。座位可以是遵循“一个座位 对应一个号码”的原则,从“第 1 号”开始编号。而内存则是按一个字节接着一 个字节的次序进行编址,如上图所示。每个字节都有个编号,我们称之为内存地址。
当我们声明变量时:int i;
char a;
内存中的映像如图所示,这里假设我们int的宽度为16位,不同系统中的int的宽度可能不一样
赋值给变量
我们可以在上面的声明变量再进一步赋值:
i = 30; a = 't';
内存中的映像如下图所示
变量的地址问题
我们先看一个C++程序 ```cpp
include
int main() { using namespace std; int i = 1; cout << i << endl; //打印i的值 cout << &i << endl; //打印i的在内存的地址,通常用十六进制表示 }
下面是程序的运行结果
```cpp
1
0xffffcc3c