您好,欢迎来到九壹网。
搜索
您的当前位置:首页看了两个数值交换后的一些感想

看了两个数值交换后的一些感想

来源:九壹网

1.对于等号在c语言中的作用更加深刻,=是用来将等号右边的结果复制到左边的记忆体内,且如果左边的记忆体内有数据,就会产生覆盖的效果,这导致数据交换不能简单的用integer1=integer2;integer2=integer1来表示,这时引入第三个记忆体,将第三个记忆体当做中间的连接通路

第三个记忆体的作用就类比于数学中两个量的中间量,比如比较大小,将0,1作为中间值等,两者间具有异曲同工之处

2.数值交换的第二个方法,我认为是利用了等号的覆盖的特殊作用,如果将输入的interger1,integer2记为x,y,每一步等号左边的记忆体将会导致内部的对应记忆体的变化,如下:

int integer1,integer2;   x,y

integer1=integer1➕integer2 :  x➕y,y

integer2=integer1➖integer2;  x➕y,x

integer1=integer1➖integer2;  y,x

3.学过两个数据交换后,我第一反应是其中原理是什么,于是进行三个数据交换的练习并尝试探索其中的原理,将三个记忆体中的数表示为x,y,z,如下:(为了简写表达为123)

int integer1,integer2,integer3;x   x,y,z

1=1+2+3;   x+y+z,y,z

3=1-2-3;   x+y+z,y,x

1=1-2-3;   z,y,x           自此之后三数据交换问题转换为二数据交换问题,不再叙述

4.对于%d符号的理解,%d可用于占位,比如printf,scanf,双引号内可用于占位,其中的内容在括号内,双引号外,逗号后去找,如printf("%d内\n",integer1),printf输出的内容是integer1里的内容

还存在的疑问:A.4中提及的一行代码中\n的作用?

B.有些代码中,如scanf("%d",&integer1)此时%d的占位作用是怎么体现?%d的内容应该从哪里读取?是从输入的内容中读取吗?

 

 

 

  

 

 

 

 

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务