预科班_运算符优先级
作者:互联网
运算符的范畴
运算符是基本运算所涉及到的符号(C语言中常用的运算符见附表)
常用的运算符说明
-
关系运算符 < <= > >= == !=
1.1 用于比较两个数据的大小,得到比价结果(0则为假,1则为真)
1.2 注意区别 “一个=” 与 “两个=” :一个= 表示赋值(将等号右边的数值赋值给等号左边),两个等号表示判断(判断左右两边是否相等) -
逻辑运算符
或(||) ->有真则真,只要左边的条件是真,右边不需要判断(提高运算速度)
与(&&) ->有假则假,只要左边条件是假,右边不需要判断(提高运算速度)
非(!) ->一般少用,是因为会导致逻辑复杂,eg x<=4 <=> !(x>4) -
位运算符->对整数二进制进行操作
eg:12 63
12:0000 1100
64:0011 1111
按位与(&) ->都是1才変1 eg:12&63 0000 1100
按位或(|) ->有1为1 eg:12|63 0011 1111
按位取反(~
) ->1変0,0変1 eg:~12 1111 0000
按位异或(^
) ->有1为1,同0为0,同1为0 eg:12^63 0011 0011
(按位异或可以用来交换两个变量:a=a^b;b=a^b;a=a^b;
)
左移(<<) ->去掉左边两个数字,右边补上相同数字 eg:12<<2 结果是:0011 0000
右移(>>) ->去掉右边两个数字,左边补上相同数字 eg:12>>2 结果是:0000 0011 -
赋值运算符
a+=b <=> a=a+b
+=的运算级别要比+低 -
自增和自减运算符(++ --)
i++(称为后加加运算) ++i(称为前加加运算)
5.1 单独使用时结果相同,但是前加运算会快些
5.2 前加是先+1,后操作;后加是先操作,后+1
说明
- 除法运算:整数相除,整数部分是几,就是几
- 求余运算:只能两个整数才能求余数
- 在进行条件判断的时候,如果条件比较复杂可以连着写,但是建议分开写判断条件
示例代码
#include<stdio.h>
#include<iostream>
int main()
{
int sum,m=0,n=0,a1=20,a2=20,score,x=0,y,p,q=0,leftShift;
sum = 1 + 2 * 3;
printf("1+2*3的结果是%d\n", sum);
printf("\n5*++m(m=0)的结果是%d\n", 5 * ++m);
printf("\n5*n++(n=0)的结果是%d\n", 5 * n++);
printf("\n3.0/4的结果是(lf的情况下)%lf\n", 3.0 / 4);
printf("\n3.0/4的结果是(d的情况下)%d\n", 3.0 / 4);
printf("\n3/4的结果是(d的情况下)%d\n", 3 / 4);
printf("\n3/4的结果是(lf的情况下)%lf\n", 3 / 4);
a1 /= 3 + 2;
printf("\na1/=3+2的结果是%d\n", a1);
a2 = a2/3 + 2;
printf("\na2=a2/3+2的结果是%d\n", a2);
score = 99;
printf("\n某人的成绩情况是%s\n", score >= 60 ? "及格" : "不及格");
printf("\nscore 的字符长度为%d\n", sizeof(score));
leftShift = 12 << 2;
printf("\n12左移的结果是%d\n", leftShift);
y = x++;
p = ++q;
printf("\ny = x++(x=0)的结果是%d\n", y);
printf("\np = ++q(q=0)的结果是%d\n", p);
system("pause");
return 0;
}
附表
常见的运算符及优先级及使用说明表
标签:12,优先级,运算,++,eg,运算符,printf,预科班 来源: https://blog.csdn.net/weixin_41743247/article/details/87901176