codecamp

C++ 操作符

操作符是特别的符号,用于表示简单的计算,比如加法和乘法。C++中大部分的操作符都会按照你所期望的去做,因为它们都是常用的数学符号。例如,用于两个整数相加使用的操作符是+。

以下都是合法的c++表达式,它们的含义几乎都是很明显的:

1+1       hour-1        hour*60 + minute       minute/60

表达式可以同时包含变量名和整型值。在所有情况下,变量在计算之前都会被它所代表的变量值所替代。

加法、减法和乘法都和你预期的相同,但是你可能会对除法感到奇怪,例如以下程序:

int hour,minute;
hour = 11;
minute = 59;
cout << "Number of minutes since midnight: ";
cout << hour*60 + minute << endl;
cout << "Fraction of the hour that has passed: ";
cout << minute/60 << endl;

这段程序会得到以下输出:

Number of minutes since midnight: 719
Fraction of the hour that has passed:0

第一行是我们所预料的结果,但是第二行有些奇怪。变量minute的值是59,59被60除得到0.98333,而不是0。产生这种差异的原因在于C++采用的是整型除法

当两个操作数都是整数时(操作数即操作符操作的对象),结果必须同样是整数,定义整数除法总是向下圆整,即便结果与上面一个整数更接近。

cout << "Percentage of the hour that has passed: ";
cout << minute*100/60 << endl;

结果是:

Percentage of the hour that has passed: 98

结果再一次被向下取整,但至少现在答案是近似正确的。为了得到一个更精确的答案,我们可以使用另外一种变量类型,称为浮点型,它可以存储浮点数。下一章我们会讨论它。


C++ 关键字
C++ 运算顺序
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }