·表达式
·运算符优先级
·交换变量
·复合赋值和递增递减
表达式
·一个表达式是一系列运算符和算子的组合,用来计算一个值
运算符:是指进行运算的动作,比如加法运算符“+”,减法运算符“-”。
算子:是指参与运算的值,这个值可能是常数,也可能是变量,还可能是一个方法的返回值。
四则运算
四则运算 | c符号 | 意义 |
+ | + | 加 |
- | - | 减 |
× | * | 乘 |
÷ | / | 除 |
% | 取余 | |
0 | 0 | 括号 |
运算符优先级
例如:求两个整数的平均值
#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;
}
运算符优先级
级 | 运算符 | 运算 | 结合关系 | 举例 |
1 | + | 单目不变 | 自右向左 | a*+b |
1 | - | 单目取负 | 自右向左 | a*-b |
2 | * | 乘 | 自左向右 | a*b |
2 | / | 除 | 自左向右 | a/b |
2 | % | 取余 | 自左向右 | a%b |
3 | + | 加 | 自左向右 | a+b |
3 | - | 减 | 自左向右 | a-b |
4 | = | 赋值 | 自右向左 | a=b |
赋值运算符
·赋值也是运算,也有结果
·a=6的结果是a被赋予的值,也就是6
·a=b=6 ➡ a=(b=6)
交换变量
交换两个变量
·如果已经有:int a=6;
int b=5;
如何交换a、b两个变量的值?
程序是按步执行的
·程序表达的是顺序执行的动作,而不是关系
a=b;
b=a;
是依次执行的,结果使得a和b都得到b原来的值
#include<stdio.h>
int main()
{
int a=5;
int b=6;
int t;
t=a;
a=b;
b=t;
printf("a=%d,b=%d\n",a,b);
return 0;
}
复合赋值和递增递减
复合赋值
·5个算术运算符,+ - * / %,可以和赋值运算符“=”结合起来,形成复合赋值运算符:“+=”、“-=”、“*=”、“/=”和“%=”
·total+=5;
·total=total+5;
·注意两个运算符中间不要有空格
递增递减运算符
·“++”和“--”是两个很特殊的运算符,它们是单目运算符,这个算子还必须是变量。这两个运算符分别叫做递增和递减运算符,它们的作用就是给这个变量+1或者-1。
·count++;
·count+=1;
·count=count+1;
前缀后缀
·++和--可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形式。
·a++的值是a加1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的之都加了1了。
表达式 | 运算 | 表达式的值 |
count++ | 给count加1 | count原来的值 |
++count | 给count加1 | count+1以后的值 |
count-- | 给count加1 | count原来的值 |
--count | 给count加1 | count-1以后的值 |