在之前的章节中,我们使用到了+
运算符,用于两个数据对象的相加。
这一节中,我们将继续认识更多的运算符,并讨论运算符和数据对象是如何相互作用的。
1. 表达式
1.1 什么是表达式?
运算符往往需要与运算对象一起使用才有意义。例如:
5 + 10
其中,5与10是运算对象
,+为运算符
。
在C语言中,一个或多个运算对象与零个或多个运算符组成表达式。下面几个都是表达式:
100
5 + 10
a / b
a * 10 / b + c
如上的例子可以看出,100也是一个正确的表达式,虽然它只有运算对象而没有运算符。
1.2 表达式的结果
printf("%d\n", 5 + 10);
运算符与运算对象进行运算操作必然产生一个结果,因此每个表达式都有一个结果。例如上面的表达式5 + 10
的结果为15。
值15被传入printf后,在控制台上打印出字符15。
1.3 表达式语句
表达式后面加上分号构成表达式语句。
C语言中表达式不能单独存在,必须以表达式语句的形式存在。
例如:
100;
5 + 10;
a / b;
a * 10 / b + c;
那么下面的表达式5+10呢?它为什么可以没有分号。
printf("%d\n", 5 + 10);
因为5 + 10
是一个子表达式,函数名加上括号运算符,构成了一个函数调用表达式。
所以,5 + 10
为函数调用表达式的子表达式,而函数调用表达式后面加了分号了。
当然函数调用表达式也有一个表达式结果,这个结果就是函数的返回值了。
2. 加法运算符 +
+
为加法运算符,它左右边各需要一个运算对象,构成加法运算符表达式
。
表达式结果:加法表达式的结果为左右表达式结果相加。
int a, b;
a = 200;
b = 100;
a + b; // 表达式结果为300
3. 减法运算符 -
-
为减法运算符,它左右边各需要一个运算对象,构成减法运算符表达式
。
表达式结果:减法表达式的结果为左右表达式结果相减。
int a, b;
a = 200;
b = 100;
a - b; // 表达式结果为100
4. 符号运算符 +、-
+
和-
为符号运算符。
+
用于标明一个表达式的正负
-
用于改变一个表达式的正负。
与加减运算符不同的是,它仅需要在运算符右边有一个运算对象。
表达式结果:
+
号表达式的结果为右边运算对象的值。
-
号表达式的结果为右边运算对象值的相反数。
+100; // 表达式结果为100
-100; // 表达式结果为-100
用于改变表达式的正负:
int a = 100;
-a; // 表达式结果为-100
请注意:+不能改变表达式的正负,请使用负负得正。
int a = -100;
+a; // 表达式结果为-100
-a; // 表达式结果为100