本帖最后由 FrancisTan 于 2014-7-9 08:05 编辑
最近在看初学视频的时候,对于老师所讲的两个变量值交换的问题一直没理解透.
在反复播放了好几次,自己在也看了很多书上讲的才有了一些些了解,个人认为这个对于初接触编程的同学来说,理解它对以后的学习是很重要的.
我们知道,当我们声明一个变量:
如 int num1 = 3;
实际上是在计算机内存中为它申请了一块独立的空间,而数值3则是以二进制的形式存储进这块空间中.
那么:在例题中要求我们交换变量a 和 b的值,实际上是在对这两块空间中的值进行处理.
在视频中,老师讲到要借助第三个变量,也就是第三块内存空间来解决这个问题.
第1行: int a = 3;
第2行: int b = 5;
第3行: int temp = a;
第4行:
第5行: a = b;
第6行: b = temp;
而对于我们初学者来说, 正是这样一个看似简单的问题,很容易顺着字面的意思去理解它.
比如:把语句a = b;直接理解成数学上的a等于b; 个人认为这样的理解将为以后的学习带来很大的麻烦.
老师讲得很清楚,上句表示将空间b中的值赋值给空间a,这样a空间和b空间中的值就相等了;
这一点可能在已经正式学过编程的同学或者老师看来根本就不是什么问题,
但是我想说的是作为初学者,在还没有建立编程思维的时候,往往会认为计算机就是像我们人脑一样在运算,
这也是必经的一个过程.
上例中:
第3行首先将空间a中的值赋值给第三快空间temp,然后第五行将b中的值赋值给a,最后再将temp中
也就是原来a的值赋值给b,从面达到交换两块内存空间中的值的目的。
这一个例子恰恰是初学者形成计算机思维的第一步,也算是启蒙篇了,在此也希望引起初学都朋友们的重视。
|
|