C语言最全操作符详解✌️
1.算术操作符
C语言的一系列操作符中,其中一组叫双目操作符,也叫算数操作符。分别是:+,–,*,/,%。
①+和–
+和–的用途与数学中基本一致,用来做加法和减法。例如:
#include <stdio.h>
int main()
{
int a = 17 + 22;
int b = 54 - 23;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
39
31
我们可以发现,他们之所以叫双目操作符,是因为他们的左边和右边一共有两个操作数。
②*
*运算符也与数学中一样,用于乘法运算。例如:
int main()
{
int c = 5 * 7;
int d = 23 * 19;
printf("%d\n", c);
printf("%d\n", d);
return 0;
}
35
437
③/
与前面一样,运算符/适用于除法计算。例如:
int main()
{
int m = 54 / 3; //18
int n = 422 / 16; //26.375
printf("%d\n", m);
printf("%d\n", n);
return 0;
}
18
26
以上两则除法中两个操作数都是整数,第二则除法的结果应有小数,但程序运行结果仅保留整数部分,说明操作数为整数时,进行的是整数除法,得到的结果也是整数,小数部分被舍弃。
int main()
{
int m = 54 / 3; //18
int n = 422.0 / 16; //26。375000
float i = 422 / 16.0; //26.375000
float j = 422.0 / 16.0; //26.375000
printf("%d\n", m);
printf("%d\n", n);
printf("%f\n", i);
printf("%f\n", j);
return 0;
}
我们将代码改一下,把原变量n改为浮点数类型,两个操作数至少有一个是浮点数。%f打印float类型浮点数,小数点后默认六位。
④%
运算符%与数学中的用法不一样,在C语言中表示求模运算。例如:
int main()
{
int i = 10 % 4;
int m = 12 % 5;
int n = 16 % 4;
printf("%d\n", i);
printf("%d\n", m);
return 0;
}
2
2
0
我们尝试将操作数改成浮点数类型:
int main()
{
double n = 12.4 % 2;
printf("%f\n", n);
return 0;
}
将操作数改为浮点数后报错,由此说明求模运算返回的是两个整数相除的余值。运算符%只能用于整数,不能用于浮点数。那负数是否可以使用这个运算符呢?
int main()
{
int i = 12 % -5;
int j = -12 % 5;
int k = -12 % -5;
printf("%d\n", i);
printf("%d\n", j);
printf("%d\n", k);
return 0;
}
2
-2
-2
由运行结果可知,第一个操作数的符号决定结果的正负号。
2.单目操作符
单目操作符是指操作符只有一个操作数,如:++、– –、+(正)、–(负)。
①++和– –
++分为前置++和后置++,– –也分为前置– –和后置– –。
a.前置++
int main()
{
int a = 0;
int b = ++a;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
1
1
a原来是0,先加1,a就变成了1,再将++a的值赋给b,也就是将1赋给b。计算后,a与b值都为1。
前置++计算规则:先+1,后使用。
b.后置++
int main()
{
int a = 0;
int b = a++;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
1
0
a原来是0,先将a赋给b,b就为0,再将a加1.计算后,a的值为1,b的值为0。
后置++计算规则:先使用,后加1。
– –的前置和后置与++的规则相同,只是将加1换成减1,例如:
int main()
{
int a = 10;
int b = --a;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
9
9
int main()
{
int a = 10;
int b = a--;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
9
10
②+(正)和 –(负)
运算符+对正负值没有影响,可忽略不写。
int a = +10; //等价于int a = 10;
运算符–用来改变一个值的正负号。
int main()
{
int a = 10;
int b = -a;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
10
-10
3.赋值操作符
初始化和赋值是不一样的。初始化是在变量创建的时候给的一个初始值,赋值是在变量创建好之后再给它一个值。
int a = 100;//初始化
a = 20;//赋值,这里使用的‘=’是赋值操作符
C语言还提供了很多复合赋值符,比如:
int main()
{
int a = 1;
a = a + 5;
a = a - 4;
printf("%d\n", a);
return 0;
}
还可以将它写为:
int main()
{
int a = 1;
a += 5; //等同于a = a + 5;
a -= 4; //等同于a = a - 4;
printf("%d\n", a);
return 0;
}
以此类推,还有很多的赋值符:
+= -=
*= /= %=
>>= <<=
&= |= ^=
4.关系操作符
C语言中用于比较的关系操作符主要有六个:
①> 大于运算符
②<小于运算符
③>=大于等于运算符
④<=小于等于运算符
⑤==相等运算符 (相等运算符 ==与赋值运算符=是两个不一样的运算符,注意不要混淆!!)
⑥!=不相等运算符
关系表达式通常返回0或1,表示真和假。关系语句常用if或while语句结构。例如:
if(a==3)
{
printf("a的值为3\n");
}
由于==与=两个运算符太容易混淆,写错之后很难找到错误并改正,我们可以将上述代码改为:
if(3==a)
{
printf("a的值为3\n");
}
将值与变量名交换位置,即使错将==写为=,编译器会报错,会更加容易快速的找到错误。
另一个需要避免的错误是:多个运算符不要连用。
i < j < k;//可以写为
i < j && j < k;//这里用到了逻辑操作符&&与
举个例子,比如:输入一个年龄,年龄在10~20岁之间的为青少年,不在这个范围内的不是青少年。
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 10 && age <= 20)
{
printf("青少年\n");
}
else
printf("不是青少年\n");
return 0;
}
5.条件操作符
条件操作符也叫三目操作符,有三个操作数。形式为:
exp1 ? exp2 : exp3
计算逻辑为:如果exp1为真,计算exp2,计算的结果是整个表达式的结果;如果exp1为假,计算exp3,计算的结果是整个表达式的结果。例如:
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
if (a > 10)
b = 5;
else
b = -5;
printf("%d\n", b);
return 0;
}
上述代码可以改为三目操作符形式:
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
b = a > 5 ? 5 : -5;
printf("%d", b);
return 0;
}
例子:使用条件操作符找两个数中的最大值
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int n = a > b ? a : b;
printf("%d", n);
return 0;
}
6.逻辑操作符
C语言中用于逻辑判断的操作符主要有三个:&&、||、!
①&&与运算符
&&运算符在前面关系运算符时已经用过,是并且的意思。只有&&两边的表达式都为真时,整个表达式才为真,只要有一个是假,整个表达式都为假。
②||或运算符
||运算符是或者的意思。||两边的表达式只要有一个为真,整个表达式为真,两边表达式都为假时,整个表达式才为假。例如:输入一个月份,判断是否为冬天。
int main()
{
int i = 0;
scanf("%d", &i);
if (i >= 1 && i <= 12)
{
if (i == 12 || i == 1 || i == 2)
{
printf("是冬天\n");
}
else
printf("不是冬天\n");
}
else
printf("输入月份错误,请重新输入\n");
return 0;
}
③!逻辑取反运算符
例如:有一个变量为happy,如果happy为假,要做一个什么事情,可以写为:
int main()
{
int happy = 0;
if (!happy)
printf("不想工作!\n");
return 0;
}
7.短路
C语言与逻辑运算符的一个特点为:它总是先对左边求值,再对右边求值。文章来源:https://www.toymoban.com/news/detail-833225.html
如果左边的表达式满足逻辑运算符的条件,就不再对右边表达式求值,这称为短路。例如:
if(i>=3 && i<=5) //当左操作数i>=3的结果为0时,即使不判断右操作数,整个表达式结果也为0
if(i==12 || i==1 || i==2) //当操作符的左操作数不为0时,就无需执行右操作数
以上就是关于C语言中操作符的详细内容,欢迎大家指正交流,别忘了点赞收藏关注哦~💕文章来源地址https://www.toymoban.com/news/detail-833225.html
到了这里,关于C语言最全操作符详解✌️的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!