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
计算之后的内存值