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程序员都能立刻认识的名字。
C++中定义了下面的算术运算符:
运算符 | 含义 |
+ | 加法 |
- | 减法(同时也是一元的负号) |
* | 乘法 |
/ | 除法 |
% | 取模 |
++ | 自增 |
-- | 自减 |
取模运算%用来求取除以某个正数的余数。回忆一下,当/运算符应用到整形数的时候,其结果的余数会被截断。例如,整数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程序员都能立刻认识的名字。
相关文章推荐
- C++ 初学者指南 第二篇(11)
- C++ 初学者指南 第二篇(12)
- C++ 初学者指南 第二篇(3)
- C++ 初学者指南 第二篇(3)实字(即常量)
- C++ 初学者指南 第二篇(8)
- C++ 初学者指南 第二篇(14)
- C++ 初学者指南 第二篇(13)
- C++ 初学者指南 第二篇(6)
- C++ 初学者指南 第二篇(4)
- C++ 初学者指南 第二篇(2)
- C++ 初学者指南 第二篇(9)
- C++ 初学者指南 第二篇(10)
- C++ 初学者指南 第二篇(15)
- C++ 初学者指南 第二篇(12)强制类型转换
- C++ 初学者指南 第二篇(7)
- C++ 初学者指南 第二篇(1)
- C++ 初学者指南 第四篇(9)
- C++ 初学者指南 第五篇(9)
- C++ 初学者指南 第六篇(10)
- C++ 初学者指南 第三篇(7)