C语言中的操作符:算术操作符,赋值操作符,单目操作符,关系操作符,条件操作符,逻辑操作符
1.算术操作符:+,-,*,/,%
int main()
{
int a = 10;
int b = 20;
printf("%d\n", a + b);//30
printf("%d\n", a - b);//-10
printf("%d\n", b / a);//2
printf("%d\n", a * b);//200
printf("%d\n", a % b);//10
return 0;
}
2. 赋值操作符
int main()
{
int x = 5;
x = 10;
//连续赋值
int a = 10;
int b = 20;
int c = 30;
c = a + b;
//复合赋值
int m = 50;
m = m + 50;//m+=50
m = m - 30;//m-=30
return 0;
}
3.单目操作符:++ ,-- ,+ ,-
+是正号(可省略),-是负号
++:后置++(先使用,后+1)
int main()
{
int a = 10;
int b = a++;
printf("%d %d\n", a, b);//a = 11;b = 10
return 0;
}
前置++:(先+1,后使用)
int main()
{
int a = 10;
int b =++a;
printf("%d %d\n", a, b);//a=11;b=11
return 0;
}
后置- -:(先使用,后 -1)
int main()
{
int a = 10;
int b = a--;
printf("%d %d\n", a, b);//a=9;b=10
return 0;
}
前置- -:(先 - 1,后使用)
int main()
{
int a = 10;
int b = --a;
printf("%d %d\n", a, b);//a=9;b=9
return 0;
}
4.关系操作符
> : 大于运算符
< : 小于运算符
>= : 大于等于运算符
<= : 小于等于运算符
== : 相等运算符
!= : 不相等运算符
4.1 关系操作符通常表示真假:0表示假,1表示真;
4.2 多个关系运算符不能连用,eg:a>b>c , because:关系运算符是从左到右依次计算的;
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18 && age <= 36)
{
printf("青年\n");
}
return 0;
}
5.条件操作符(三目操作符)
exp1 ? exp2 : exp3
如果exp1 为真,exp2计算;如果exp1为假,exp3计算
(计算的结果是整个表达式的结果)
int main()
{
int a = 0;
int b = 0;
scanf("%d", &a);
b = a > 10 ? 20 : 30;
printf("%d\n", b);
return 0;
}
6.逻辑操作符:&& ,|| ,!
!:逻辑取反运算符(改变单个表达式的真假)
&&:逻辑与运算符,就是并且的意思***(两侧表达式都为真,则为真,否则为假)***
||:逻辑或运算符,就是或者的意思***(两侧至少有一个表达式为真,则为真,否则为假)***
eg:
int main()
{
int a = 0;
if(!a)
{
printf("hello world\n");
}
int b = 1;
if (!b)
{
printf("haha\n");
}
return 0;
}
(0表示假,非0表示真)
eg:3,4,5月为春天
int main()
{
int month = 0;
scanf("%d", &month);
if (month == 3 || month == 4 || month == 5)
{
printf("春天\n");
}
return 0;
}
eg:闰年判断
int main()
{
int year = 0;
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
printf("闰年\n");
}
return 0;
短路:先对左边的表达式求值,在对右边求值,如果左边的表达式满足逻辑运算符的条件,就不再对右边求值