运算符(也叫操作符):运算符是一个表示特定的数学或逻辑操作的符号。如'+'号,表示了一个相加运算;'&&'号表示了一个逻辑‘与’的运算。由运算符把需要进行运算的各个量(常量或变量)连接起来组成一个表达式。
下面要讲的是标准的运算符,在C++中还有另外的一些运算符。
要把表中的运算符仔细的分类是不容易的,因为同一个运算符,在不同的地方其含义是不同的。如*运算符,当作为乘运算时是双目操作符(所谓双目操作符,即运算时需要二个操作数),如3*6,那么3与6总共是二个操作数。当作为取值运算时就是单目操作符(所谓单目操作符是只需要一个操作数)如对一个数求反:!a,这里只有一个操作数a。
要记住运算符的二个特点,一个是运算符的操作对象,另一个就是运算符的优先级别。其中运算符的优先级别是最不容易搞清楚和最容易出错的地方。
在讲运算符之前讲一下“表达式”的概念:所谓表达式,就是用运算符把各个操作数连接成符合C语法规则的进行运算的式子。这里说的“符合C语法的规则”也很重要。如 a+b+5就是一个用算术运算符连接起来的表达式。
1、算术运算符:+、-、*、/、%
1)+、-、*、/ 分别是相加、相减、相乘、相除
2)% 求二个数运算的模。所谓求模就是求二个数相除后的余数。例:25/3的余数是1,可以说25%3的模是1。要注意的是求模运算时二个操作数必须是整数。如果求25.3/3.1这样是不能运算的。
下面写一个例子:
#include<stdio.h> /*程序中要用到输入输出库函数,所以包含了stdio.h*/
void main()
{
int a=10,b=20,c=30; /*定义了3个整型变量,并同时进行了初始化赋值*/
a=a*b+c; /*a*b+c组成了一个算术表达式,运算后的结果为230并把值*/
/*赋给变量a*/
printf("%d",a); /*以整型格式输出变量a的值。这里输出230*/
a=a%b; /*进行求模运算。因为没有余数,最后的模为0*/
printf("%d",a); /*输出变量a的值。这里输出0*/
}
下面是一个要考虑运算符优先级的例子:
#include<stdio.h>
void main()
{
int a=10,b=20,c=30;
a=c-a*b; /*这里就要考虑运算符优先级,*运算符的优先级比-运算符*/
/*的高,所以先进行乘运算。这里最后结果为-170*/
}