李宽那本书看得差不多了,感觉讲得太简单了点,而且讲的顺序并不是很合理,因为以前鼓捣过几天,再加上现在用得不多,所以很多东西其实只是作为一个参考。现在又重新找了个书,准备认认真真学一下C++的基础知识。
------------------------------------------------
以前一直有两个问题困扰着我,连续=、连续<是什么结果,一直没去做测试,《标准C++宝典》里面对于第一个问题有明确解释:
a=b,返回结果为b,那么a=b=c=d=...,最终结果是最右端的值,所以连续=可以按直观含义操作,不会出问题。
好了,这个困扰已久的问题终于找到理论根据了,我顺便测试了一下a<b<c,结果既出人所料,又在意料之中:
a<b,返回的是布尔值,而不是像a=b一样返回值为b,这我们平时都懂。
所以:a<b为0或者1,第二步是用0或者1去与c作比较,自然得不到想要的结果。
所以那些写:if(a<b>c){...}的家伙要悲剧了!
其实这两种表达式,只要按最初的理解去操作,就不会有问题,就怕异想天开,又想偷懒少写组&&, ||
时间: 2024-10-31 01:24:10