当前位置: 首页 > 文档资料 > C++大学教程 >

1.17 内存的概念

优质
小牛编辑
132浏览
2023-12-01

integer1、integer2 和 sum 等变量名实际上对应于计算机内存中的地址(location)。每个变量都有名称(name)、类型(type)、长度(size)和值(value)。

在图 1.6 所示的加法程序中,执行下列语句时:

cin>>integer1;

用户输入的值放在 C++ 编译器为 integer1 指事实上的内存地址中。假设用户输入 integer1 的值 45,则计算机将 45 放在地址 integer1 中,如图1.7。

integer1

45

图1.7内存中的值

无论何时将新值放入内存地址,这个值将取代该地址中原有的值,并删除前一个值。

运行前面提到的加法程序,当执行下中句时:

cin>>integer2;

假设用户输入舋,则计算机将72放在地址integer2中,如图1.8。注意编译器不一定将这两个地址指定为内存中相邻地址。

程序取得integer1和integer2值后,它将这两个值相加,并将和放在变量sum中。下列语句:

sum=integer1+integer2;

进行加法运算,同时也删除一个值,即把integer1和integer2的和放进地址sum中时,sum原有的值丢失。计算sum之后,内存如图1.9。注意integer1和integer2的值和计算前一样,虽然这些值在计算机进行计算时使用,但并不删除。因此,从一个内存地址读取数值时,这个过程是非破坏性的。

integer1

45

integer2

72

图1.8 两个变量值之后的内存值

integer1

45

integer2

72

sum

117

图1.9

计算之后的内存值