上QQ阅读APP看书,第一时间看更新
4.5 新手疑难问题解答
问题1:i++与++i,或者i--与--i是一样的吗?
解答:从作用上看,i++与++i都相当于i=i+1,i--与--i相当于i=i-1。但它们之间有不同之处,以i++和++i为例,i++是先使用i的值,再执行i=i+1,而++i是先执行i=i+1后,再使用i的值。例如,若i初值为1,则:
j=i++; /*执行后j的值为1,i的值为2,因为先执行j=i,将i的初值1赋给j,故此时j=1,然后执行i=i+1=2;*/ j=++i; /*执行后j的值为2,i的值为2,因为先执行i=i+1=2,将i的值2赋给j,故此时j=2; */
问题2:在使用算术运算符中的除法运算符时,为什么99/5的值为19,而不是19.8呢?
解答:对于“/”运算符,C++语言中的规定如下。
(1)当它的两个运算分量均为整数时,计算结果也必须为整数,也就是说运算结果只保留除法运算后的商(舍去小数部分),所以99/5的结果为19,舍去小数部分。
(2)如果两个运算分量中有一个数为浮点型,则计算结果也应该为浮点型数据。例如,99.0/5的结果为19.8。
(3)如果两个运算分量有一个为负值,则计算结果会随不同的计算机系统而不同,但大多数计算机采用“向零取整”的原则。例如,-7/4的结果为-1;7/-4的结果为1。