您的位置 首页 主动

第12节:两个变量的数据交换。

从业十年,教你单片机入门第12讲:为了加深理解赋值语句的一个重要特性覆盖性,本节利用赋值语句=做一个实验。要求把变量a与b的两个数据

从业十年,教你单片机入门 第12讲:

为了加深了解赋值句子的一个重要特性“掩盖性”,本节使用赋值句子“=”做一个试验。要求把变量a与b的两个数据进行交流,假定a本来的数据是1,b本来的数据是5,交流数据后,a的数据应该变为5,b的数据应该变为1。

许多初学者刚看到这么简略的标题,会想当然的依据咱们日常日子的思路,你把你的东西给我,我把我的东西给你,就两个过程,so easy!请直接仿制第十节的模板程序,仅修正main函数后,main函数源代码如下:

void main() //主程序

{

/*—C言语学习区域的开端—————————————————————————*/

unsigned char a=1; //界说一个变量a,而且分配了一个字节的RAM空间,里边保存的数据被初始化成1.

unsigned char b=5; //界说一个变量b,而且分配了一个字节的RAM空间,里边保存的数据被初始化成5.

b=a; //第一步:为了交流,先把a的数赋值给b。

a=b; //第二步:为了交流,再把b的数赋值给a。

GuiWdData0=a; //把变量a这个数值放到窗口变量0里边显现

GuiWdData1=b; //把变量b这个数值放到窗口变量1里边显现

/*—C言语学习区域的完毕—————————————————————————*/

while(1)

{

initial();

key_service();

display_service();

}

}

仿制代码

上坚鸿51学习板调查程序履行的成果:

变量a的数值是1。

变量b的数值是1。

上述试验成果并没有到达交流数据的意图,为什么?因为赋值句子有一个重要的特性,便是掩盖性。剖析如下:

b=a; //第一步

剖析点评:履行第一步后,此刻尽管b得到了a的数据1,可是b本来自己的数据5现已被掩盖丢掉了!

a=b; //第二步

剖析点评:因为b的数据在履行第一步后变成了1,履行第二步后,此刻相当于把1赋值给a,并没有5!所以a和b的数据都是1,不能到达交流后“a为5,b为1”的意图。

上述交流数据的程序宣告失利!怎么办?已然赋值句子具有掩盖性,那么两变量想交流数据,就必须凭借第三方存放,此刻只需要多界说一个第三方变量t。main函数源代码如下:

void main() //主程序

{

/*—C言语学习区域的开端—————————————————————————*/

unsigned char a=1; //界说一个变量a,而且分配了一个字节的RAM空间,里边保存的数据被初始化成1.

unsigned char b=5; //界说一个变量b,而且分配了一个字节的RAM空间,里边保存的数据被初始化成5.

unsigned char t; //界说一个变量t,而且分配了一个字节的RAM空间,里边默许是什么数据不重要。

t=b; //第一步:为了防止b的数据在履行第二步后被掩盖丢掉,先把b的数据存放在第三方变量t那里。

b=a; //第二步:把a的数赋值给b,b本来的数据尽管被掩盖丢掉,可是b在t变量那里有备份,再也不必忧虑了。

a=t; //第三步:因为此刻b现已获得了a的数据,假如想交流,此刻只能把b在t变量里的备份赋值给a,而不能用b。

GuiWdData0=a; //把变量a这个数值放到窗口变量0里边显现

GuiWdData1=b; //把变量b这个数值放到窗口变量1里边显现

/*—C言语学习区域的完毕—————————————————————————*/

while(1)

{

initial();

key_service();

display_service();

}

}

上坚鸿51学习板调查程序履行的成果:

变量a的数值是5。

变量b的数值是1。

交流成功!

下节预告:二进制与字节单位。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/262137.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部