您的位置:首页 > 编程语言 > C语言/C++

C++ 初学者指南 第二篇(5)

2009-12-18 22:04 239 查看
必备技能 2.4 :算术运算符
C++中定义了下面的算术运算符:

运算符
含义
+
加法
-
减法(同时也是一元的负号)
*
乘法
/
除法
%
取模
++
自增
--
自减
其中+,-,*,/运算和几何中的含义是一样的。这些运算符都可以用于与C++内置类型的数值型数据。它们还可以作用于char类型的数据。
取模运算%用来求取除以某个正数的余数。回忆一下,当/运算符应用到整形数的时候,其结果的余数会被截断。例如,整数10除以整数3的结果是3。我们可以使用%运算符来获取这中除法的余数。例如,10%3=1。在C++中,%只能用于整数的操作数。它不能用于浮点数的操作数。

下面的程序演示了取模运算:
//演示取模运算
#include <iostream>
using namespace std;
int main()
{
int x,y;

x=10;
y=3;
cout<<x<<"/"<<y<<" is "<<x/y<<" with a remainder of "<<x%y<<"/n";

x=1;
y=2;
cout<<x<<"/"<<y<<" is "<<x/y<<"/n"<<x << "%" <<y << " is " << x%y <<"/n";

return 0;
}
程序的输出结果是:
10 / 3 is 3 with a remainder of 1
1 / 2 is 0
1 % 2 is 1

自增和自减运算符
在第一章中我们介绍过++和--分别是自增和自减运算符。他们有一些特殊的性质,这使得这两个运算符很有意思。让我们先回忆一下自增和自减运算符的到底是干什么的.
自增运算符是给他的操作数加1,自减运算符是个他的操作数减一。因此,
x=x+1;

x++;
是一样的。
x=x-1;

--x;
是一样的。
自增和自减运算符都既可以是前运算符也可以是后缀运算符。例如:
x=x+1;
可以写成
x++;
或者
++x;
在上面的这个例子中,前缀和后缀运算没有区别。然而,当自增和自减运算符作为一个更大的表达式的一部分的时候,作为前缀和后缀就有了重要的区别。当自增和自减运算符位于操作数的前面,C++会先进行自增和自减运算,然后才是取出变量的值参与表达式的其它部分进行运算。如果自增或者自减运算符位于操作数的后面,C++会先取操作数的值进行运算,然后才进行自增和自减运算。考虑下面的情况:
x=10; y=++x;
在这种情况下,y的值将会是11。然而,如果代码如下:
x=10,y=x++;
则y的值将会是10。两种情况下,X的值都会变成11。区别就在于X是什么时候变成11 的。这种可以控制变量在什么时候进行自增和自减的方式是很有优势的。
算术运算符的优先级如下:
最高优先级 ++ --
-(一元的负号)
* / %
最低优先级 + -
只有在同一优先级的运算符,编译器才会从左到右进行运算。当然,我们可以使用括号来改变运算的先后顺序。C++中的括号实际上和其他计算机语言中的一样:或者是用来进行强制运算的,或者是用来执行一系列运算的,或者是用来提高运算级别的。

专家答疑
问:
自增运算符++和C++这个名字有关系吗?
答:
是的。我们都知道,C++是构建于C之上的。C++在C上做了很多增强,其中大部分都是支持面向对象的编程的。因此,C++代表着对C的增加和改进。对C这个名字后面增加++也是一个很好的解释C++的方式。
斯特劳施特鲁普期初把C++叫做“带有类的C”,但是在Rick Mascitti的建议下,他把名字改成了C++。这个新的语言注定是要成功的,C++名字的修改实际上确保了他在历史中的地位,因为这个名字是一个所有C程序员都能立刻认识的名字。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: