1.算数运算符
作用 | 加 | 减 | 乘 | 除 | 取余 | 自增 | 自减 |
符号 | + | - | * | / | % | ++ | -- |
其中加减都是和数学中的一样,但是应该还是用该注意一下各个数据的取值范围;
1.乘
#include <stdio.h>
int main() {
double i= 15.2;
int a = 20;
int b = i * a;
printf("%lf",b);
return 0;
}
运行结果
D:\code\C\st04.exe
0.000000
Process finished with exit code 0
这个的运行结果就是可以看到如果各个数据类型不一样就是容易出现这样的情况
#include <stdio.h>
int main() {
double i= 15.2;
int a = 20;
double b = i * a;
printf("%lf",b);
return 0;
}
将这个数据类型换成正确的数据类型就是正确的
D:\code\C\st04.exe
304.000000
Process finished with exit code 0
2.除
#include <stdio.h>
int main() {
double b = 17 / 2;
printf("%lf",b);
return 0;
}
将double中的除数和被除数都换成整数的情况下输出的结果是不正确的
上面的代码运行结果如下
D:\code\C\st04.exe
8.000000
Process finished with exit code 0
但是将任何一个数据换成小数,这时候就会发现
#include <stdio.h>
int main() {
double b = 17.0 / 2;
printf("%lf",b);
return 0;
}
运行结果
D:\code\C\st04.exe
8.500000
Process finished with exit code 0
这时候就会发现值是正确的
这是因为在运算的过程中,17是int,17/2的结果还是int类型,就会舍去小数点后面的数据,
在17.0/2的过程中就会将这个数据都转换成浮点类型,然后就是将这个小数赋值给b,b的类型也是小数的这时候就是正确的值
3.%取余
取余据说是很少用到的,简单来了解一下
取余的对象必须是整数,运行结果就是整数除后的余数
运算结果的符号和被除数的符号相同,只看被除数的符号,不看除数的符号,
写一行简单的代码来看一下
#include <stdio.h>
int main() {
double b = -17 % 2;
printf("%lf",b);
return 0;
}
运行结果就是-1
D:\code\C\st04.exe
-1.000000
Process finished with exit code 0
其他的符号都是非常的简单,跟数学中几乎一样,这里就不在赘述
2.关系运算符
符号 | > | >= | < | <= | != | == |
作用 | 大于 | 大于等于 | 小于 | 小于等于 | 不等于 | 等于 |
这些运算符和数学中的用法和意义一样
3.逻辑运算符
符号 | && | || | ! |
作用 | 逻辑与 | 逻辑或 | 逻辑非 |
1.&&逻辑与:两个同时为真就是真,只要有一个为假就是假
2.||逻辑或:只要两个里面同时有一个为真就是真,当第一个为假的时不会执行后面的代码,第一个为真,这时候才会执行后面的
3.!逻辑非:非真就是假,非假就是真,第一个为真就不会执行后面的代码了
#include <stdio.h>
int main() {
if (15 > 13 && 25 > 20)
printf("执行了吗1?\n");
if (15 > 13 && 2 > 20)
printf("执行了吗2?\n");
if (15 > 13 || 25 > 20)
printf("执行了吗3?\n");
if (15 > 13 || 25 > 20)
printf("执行了吗4?\n");
if (1 > 13 || 2 > 20)
printf("执行了吗5?\n");
return 0;
}
运行结果
D:\code\C\st04.exe
执行了吗1?
执行了吗3?
执行了吗4?
Process finished with exit code 0
虽然代码非常的丑陋还是能说名他们之间的关系
4.运算符的有优先级
不需要特别的记忆,需要的时候查一下优先级表格,长期下来就会记住