将变量比喻成一个装数据的盒子,是不是不太严谨呀?
时间:2010-07-26
来源:互联网
将变量比喻成一个装数据的盒子,是不是不太严谨呀?
int a;
a=6;
a=12;
a=999;
很多书,都将变量形容成装数的盒子,我认为不对,假如按这种比喻假设一下,情况是什么
比如以上代码,定义了变量a,并赋值为6
将在内存中建立了一个盒子,里面有数字6
下面执行 a=12,则将内存中数字为6的位置,将数字改成12,
再执行 a=999,则将数字为12的地方,改为999.
我的理解对吗?可是这样不对的吧。
因为a是标量呀,标量是不能被更改的,所以正确的应该是
a=6时,新建一个对象6,将变量a指向6,当执行a=12时,再新建一个对象12,让变量a指向12,此时对象6就自动消失了。
当执行a=999时,新建一个对象999,使变量a指向对象999,然后对象12也自动消失了。
我的前后两次描述 ,哪个正确呢?
作者: go_hao 发布时间: 2010-07-26

作者: ecjtubaowp 发布时间: 2010-07-26
ecjtubaowp 发表于 2010-07-26 11:18
刚才没打完字,不小心发贴了。现在已经编辑,不知的说明白了没有。
作者: go_hao 发布时间: 2010-07-26
普通变量见第一种说法,对象见第二种说法。
作者: davelv 发布时间: 2010-07-26
作者: prolj 发布时间: 2010-07-26
prolj 发表于 2010-07-26 11:27
什么意思,就凭这个问题,我就不能学了吗?
作者: go_hao 发布时间: 2010-07-26
LZ很有悟性。这就是两种不同的语言模型。前一种比如c/c++,后一种比如python等基于引用的对象模型的动态语言。
作者: donglongchao 发布时间: 2010-07-26
作者: tempname2 发布时间: 2010-07-26

作者: pandaiam 发布时间: 2010-07-26
作者: hellioncu 发布时间: 2010-07-26
变量的意义在于把值用与这个值无关的名称来代替,这样就不必预先知道数据而可以参与运算了。
计算机科学的“变量”与数学“变量”是不同的。数学变量可以代表变化过程,有它的定义域或值域,与时间无关,除非约定它是时间的函数。但计算机变量在某一时刻对应的值是确定的,是一种状态而不只是范围。
不要尝试用非本专业的概念去“比喻”专业性较强的概念,而应该慢慢地体会。
作者: langue 发布时间: 2010-07-26
- int a; /* 有一块名叫a的内存,内存里只能装 整型数据,这块内存的大小也就是整型的大小了 */
- a=6; /* 向a这块内存中装入整型6
- a=12; /* 赂a这块内存中装入整型12,即盖住以前的6 */
- a=999; /* 同上 */
作者: zhangsuozhu 发布时间: 2010-07-26
tempname2 发表于 2010-07-26 13:02
确实,最近看些python的书。
作者: go_hao 发布时间: 2010-07-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28