黑马程序员技术交流社区
标题:
学习基础视频第一天第二天的一些收获
[打印本页]
作者:
i蓝蓝蓝天
时间:
2012-4-28 17:52
标题:
学习基础视频第一天第二天的一些收获
一个细枝末节:代码如下:short s=4;s=s+5;与s+=5;这两句话有什么区别呢?答:s=s+5不能通过编译,而后面那种表达形式可以。原因:short在内存中只占了2个自己,在执行s+5的时候,系统会自动把它提升为int型,而int是四个字节的,再把一个四字节的数赋值给一个2字节,这个是肯定不能通过编译,而且你还不能强制转换,如果你这样写:s=(short)s+4;编译的时候系统会报损失精度的错误。而s+=5;却能够通过编译,这个表达式它只做赋值,其内部有自动转换功能。(以后面试可能会用到)。
.两个数的相互转换,如何不用第三个变量实现。例如互换n和m,需用到一下三个表达式:n=n+m; m=n-m; n=n-m;这样就换过来了,我当时也理解了蛮久的。第一个表达式执行完之后,n的值已经变化了,但是m的值还没有变化,这时候可以用n-m得到之前n的值,把它赋值给m,此时就已经实现了m得到了n的值,接下来就是要将之前m的值赋值给n,这不就简单了嘛,用现在的n减去现在的m得到的不就是以前的m的值了嘛。同理也可以用异或运算实现,我们都知道一个数以后另一个数两次结果还是自己本身。用异或运算实现的代码如下:n=n^m;m=n^m;n=n^m;再写的详细点吧,免得自己以后也看不懂了,得到的m的值相当于:n^m^m;得到的n的值相当于:n^m^n;
作者:
杨志
时间:
2012-4-28 18:41
不错不错!我也是的!刚来的时候,以为自己知道很多呢!
在这里转了一圈发现这个还有很多东西需要去深入呢!
这不!我又去重新看这个基础视频了!基础还是很重要的!
作者:
覃飞飞
时间:
2012-6-27 22:56
不错,学习的过程中思考很重要,加油
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2