C语言中的运算符
1. 在C语言中运算符包括:算术运算符、关系运算符、赋值运算符、逻辑运算符
2.用运算符把变量、常量连接起来的式子就是表达式
3.我们阅读一个表达式,从表达式的功能和表达式的值来看
4. 算术运算符和表达式
4.1 运算符包括:+ - * / %
4.2 一个整数和另外一个整数相除,结果是一个整数, 4/6 == 0, 6/4 == 1
4.3 求余操作%,余数的符号和被除数的符号一致 -6 % 4 == -2
4.4 数据类型较短的操作数和较长的操作数进行运算时,首先转换为较长的类型,再参加运算。整数和小数进行运算时,先把整数转换为小数再运算。如:
int i = 10;
long j = 20;
表达式 i + j , 运算前把i的类型先转换为long,然后再和j进行相加
float f = 12.34;
表达式 i + f , 运算前先把i的类型转换为float,再参加运算。
4.5 对于算术表达式来说,整个表达式的类型就是这个表达式中最长的数据类型
i + j 这个表达式 的类型是 long
i + f 这个表达式的类型是float
5. 自增和自减
i ++ 相当于 i = i+1
i--相当于i = i-1
自增和自减 的后缀形式 i++和i—,i++和i--表达式的值是变量i的值,后缀方式是先使用,后自增或自减; ++i和--i是前缀形式,前缀形式的表达式的值,是先自增或自减之后 的值
int i = 10;
int j = i++; // j == 10, i== 11
int k = ++i; // i == 12,k == 12,
6. 赋值表达式
int i = 10;
int j;
j = i 这就是一个赋值表达式,把赋值号(=)右边表达式 的值,赋值给左边的变量
赋值号左边的一定是一个变量,赋值表达式的值就是左边变量的值。
7. 关系表达式
7.1 关系运算符包括: > , >= , < , <= , == , != , <>
7.2 两个操作数进行比较,结果要么是真,要么是假
7.3 关系表达式常常和后面要学的 if语句 , 循环语句结合使用,作为一个条件存在
7.4 需要注意的是,在C语言中,用0表示假,非0数都是真
7.5 注意,如果表达式成立,会输出1, 表达式不成立,会输出0
7.6 如果有三个变量 a, b, c,求三个变量的最大者,这个条件应该这样写:
if( a>b && a > c ){
printf("最大数是%d\n", a );
}
if( b>c && b>a ){
printf("最大数是%d\n", b );
}
if( c>b && c>a ){
printf("最大数是%d\n", c );
}
8.逻辑表达式
8.1 逻辑运算符包括 && || !
8.2 表达式1 && 表达式2,当表达式1为假时,不再计算表达式2
8.3 表达式1 || 表达式2,当表达式1为真时,不再计算表达式2
9. 三目运算符 ?:
条件?表达式1 :表达式2
如果条件成立,返回表达式1的值,条件不成立,返回表达式2的值
10. 位移运算
向左位移<< 和 向右位移 >>
向左位移就相当于原来的数乘以2, 向右位移相当于除以2
11 位运算
按位与 &, 按位或|, 按位取反~, 按位异或^
需要把这个数转换为二进制之后 再按位进行操作
异或的值,只有当两个相应的位不一致的时候,结果为1
12 强制类型转换
(类型) 表达式
13 了解运算符的优先级