表达式
- 一个表达式是一系列运算符和算子的组合,用来计算一个值
例如:
total = 86;
count = count + 1;
a = (b / c) * d;
...
运算符(operator)
- 指进行运算的动作,比如加法运算符“+”,减法运算符“-”
运算符优先级
- 这里要着重记录下,单目运算符的优先级高,如-b、+b
- a*+b,先做+b的运算,有了一个结果,在做a*的运算;
赋值运算符(=),向上图标识一样,自右向左
- 例如: a = b + 5,先计算b + 5,将结果赋值给a
复合运算符
a+=b 等同于 a = a + b,其它同理;
- +=
- -=
- *=
- /=
- %=
递增递减运算符
- ++
- - -
说明:
++ 和- - ,是两个特殊的运算符,是单目运算符,算子必须是变量,这2个运算符分别做递增和递减运算符,作用是给这个变量+1或-1;例如a++,等同于 a = a + 1、 a += 1;
注:
- ++ 和 – 可以放到变量前面,叫 前缀形式,放到变量后面,叫后缀形式
- a++的值是a加1以前的值,而++a的值是加了1以后的值
程序示例:为了表达清晰,用了2个变量,初始值都为10;可以看到结果和上面描述的一致;
总结:前缀是加1以后的,后缀是加1以前的;
C语言关系运算符
关系运算符的运算结果,如果为真 = 1,假为0
优先级比算数运算符低,比赋值运算符高
算子(operand)
- 指参与运算的值,这个值可能是常数、变量、方法的返回值
练习题1:计算时间差
#include <stdio.h>
//计算时间差
int main()
{
int hour1, minute1;
int hour2, minute2;
scanf("%d %d", &hour1, &minute1);
scanf("%d %d", &hour2, &minute2);
//计算分钟数
int t1 = hour1 * 60 + minute1;
int t2 = hour2 * 60 + minute2;
//分钟差
int t = t2 - t1;
printf("时差是%d分钟, 时间差是%d小时%d分钟", t, t / 60, t % 60);
return 0;
}
练习题2:计算平均值
#include <stdio.h>
//计算平均值
int main()
{
int a, b;
scanf("%d %d", &a, &b);
double c = (a + b) / 2.0;
printf("%d和%d的平均值为%f\n", a, b, c);
return 0;
}