目录
一、算术运算符
1.运算符的优先级
不同的运算符在表达式中进行运算的先后次序。
()的优先级最高
*和/的优先级要大于+和-
2.运算符的结合性
当一个运算对象的两侧的运算符的优先级相同时,运算的结合方向称为结合性。
左结合性: 自左向右: *、/、+、-
右结合性: 自右向左: 运算对象先与右边运算符结合 如:d=a+b-c
3.“++、--”运算符说明
(1)规则
1)++、--位于变量之前:在使用该变量之前使用它的值先增1或减1,然后再使用它,即使用的是增1或减1后的值。(先自增,再使用)
x=++n; <==> n=n+1; x=n;
2) ++、--位于变量之后:在使用该变量之后才使用它的值先增1或减1,即使用的是增1或减1前的值。(先使用,再自增)
x=n++; <==> x=n; n=n+1;
(2)注意事项
1)运算对象只能是简单变量,不能是常量或带有运算符的表达式。
例如: 6--、++(a+b)、++(-i)均不合理
2)i+++j -i+++-j也不合理
(3)运算实例
#include<stdio.h>
void main()
{
int a,b,c;
b=5;
c=5;
a=++b+c--;
printf("%d %d %d\n",a,b,c);
a=(b--)-c;
printf("%d %d %d\n",a,b,c);
a=(-b++)+c;
printf("%d %d %d\n",a,b,c);
}
运算结果
11 6 4
2 5 4
-1 6 4
4. “=”运算符的说明
表达式: 变量名=表达式
功能:将表达式的值传递给变量。
(1)规则
1)在C语言中,“=”为赋值运算符,而不是“等号”。
2)赋值运算符"="左边必须是变量名,不能是表达式 。 例:x+y=5
3)C语言允许在赋值运算符之前加上其它运算符,构成复合赋值运算符
+=、-=、*=、/=、%=
例:a=a+10 <—> a+=10
x=x*(y+1) <—> x*=y+1
(2)实例:
#include<stdio.h>
void main()
{
int a=1,b=2;
a+=a-=b+2;
printf("%d\n",a);
}
运算结果
-6
二、关系运算符
> < >= <= != ==
大于 小于 大于等于 小于等于 不等于 等于
关系表达式:用关系运算符将两个表达式连接起来的式子。
(1)规则
1)关系表达式运算结果有两个:
“真” -- 1
“假” -- 0
2)C中,非零值表示“真”,零表示“假”。
3)优先级:前四个高于后两个,低于算术运算符
4)结合性:自左至右
(2)实例:
#include<stdio.h>
void main()
{
int a=3;
printf("%d\n",5<a<8);
}
过程:
第一步运算“5<a”结果为0
第二步运算“0<8”结果为1
故运算结果为:1
三、逻辑运算符
&&(与运算符), ||(或运算符), !(非运算符)
(1)规则 :
“&&”和“||”为双目运算符 ,要求有两个操作数;
“!”为单目运算符,只要求有一个操作数。
(2)说明:
(1)C语言对逻辑表达式求解,并不是所有的运算符都被执行,只是在必须执行后面的运算才能求出表达式时,才执行其后的运算,否则将不执行后面的运算。
(2)优先级:! ——> && ——> ||
(3)结合性:&& 、 || 自左向右
!自右向左
四、条件运算符
(1)概念
用于连接3个运算对象,是C语言中唯一的一个三目运算符。
__?__:__
(2) 含义
该运算符表示当表达式1成立时取表达式2,当不成立时取表达式3
“表达式1” ? “表达式2” : “表达式3”
(3)规则
结合性:自右向左。