一,C语言中优先级顺序表
第1优先级 各种括号,如( ),[ ]等,成员运算符
第2优先级所有单目操作符,如++,--,!,-等
第3优先级乘法运算符*,除法运算符/,求余运算符%
第4优先级加法运算符+,减法运算符-
第5优先级移位运算符<<,>>
第6优先级 大于运算符>,大于等于运算符<=,小于运算符<,小于等于运算符<=
第7优先级 等于运算符==,不等于运算符!=
第8优先级按位与运算符&
第9优先级按位异或运算符^
第10优先级按位或运算符|
第11优先级逻辑与运算符&&
第12优先级逻辑或运算符||
第13优先级三目条件操作符?:
第14优先级 各种赋值运算符,如=,+=,-=,*=,/=等(赋值,复合赋值)
第15优先级逗号运算,
二,算数操作符
C语言中为便利运算,提供的一系列操作符(运算符)如下:
+加 -减 *乘 /除 %求余 ——也叫做双目操作符,因为它有左操作数,右操作数两个。
/-- 除号两边只要有一个是小数,就执行小数除法
/可能会有的误解
int a = 10;
printf ("%d\n",a/4); //打印出是2,除号两端都是整数,执行的是整数的除法
printf ("%d\n",a/4.0); //打印出是2.5,若想得到小数,至少有一边是浮点数
return 0;
double值放int中,可能会丢失数据
double的值要放到int(a)中,可能会丢失数据
我们加上一个*100,看结果
运算符%表示求模(余)运算,即返回两个整数相除的余值,这个运算符不能用于浮点数。
%--①操作符的操作数只能是整数 ; ②操作符计算的结果是两个操作数整除之后的余数
printf("%d\n", 11%-5); //打印1
printf("%d\n", -11%-5); //打印-1
printf("%d\n", -11%5); //打印-1
负数求模的规则是,结果由第一个运算数的正负号决定。
三,赋值操作符
= 和 复合赋值
int a = 10; //初始化,
a = 10; //赋值
a = 4+6; //右边赋给左边
连续赋值
int a = 3;
int b = 5;
int c = 0;
c = b = a+3; //连续赋值,从右边向左依次赋值
复合赋值
int a = 10;
a = a + 3; //打印出是13,a自增了3
a += 3; //与上一行同一个意思
a += 3 即 a= a+3;a -= 3 即 a= a-3; a /= 3 即 a= a/3; a *= 3 即 a= a*3; a %= 3 即 a= a%3;
四,单目操作符
++、--
都有前置和后置之分
++运算符:分为前置++和后置++,
前置++:先加1,后使用,即先使用变量中内容,然后给结果加1
后置++:先使用变量中内容,整个表达式结束时,给变量加1
a=a+1;
a+=1;
a++; //先使用,再加一
++a; //先加一,再使用
以上四种写法都是让a自增了1,但前置后置还是有区别的
int a = 10;
int b = ++a; //运行这条代码,b打印出来等于11
iint b = a++; //运行这条代码,b打印出来等于10
五,赋值忽略符*
有时用户的输入可能不符合预定的格式
只要把*加在任何占位符的百分号后面,该占位符就不会返回值,解析后将被丢弃
在 scanf 的格式占位符里, % 后面加一个 * (比如 %*c 、 %*d ),表示:
- 读取输入内容,但不赋值给任何变量,解析后直接丢弃。
- 常用于跳过你不关心的分隔符、多余字符,让代码能兼容多种输入格式
六,关系操作符
C语言用于比较正式的表达式,称为“关系表达式”,里面使用的运算符就称为“关系运算符”,主要有以下6个:
> —— 大于 运算符
< —— 小于
>= —— 大于等于
<= —— 小于等于
== —— 相等
!= —— 不相等
//关系表达式中通常返回1或0,表示真假
当一个变量和常量值比较相等的时候,把常量放在==的左边,这是一个好习惯
关系操作符不可连用
int i = 3;
int j = 8;
int k = 5;
if(i < j && j<k) // &&--并且,不能写成i<j<k
七,条件操作符
也叫三目操作符
表达式1 表达式2 表达式3
exp1 ? exp2 :exp3 //与if else语句相似,某些场景可替代
条件操作符的计算逻辑是:如果表达式1为真,表达式2计算;如果表达式为假,表达式3计算。计算的结果是整个表达式的结果。
八,逻辑操作符
&& 、 || 、 !
逻辑运算符提供逻辑判断功能,用于构建更复杂的表达式。
!按位取反运算符 (改变单个表达式的真假)
&&逻辑与运算符,并且的意思(两侧表达式同真则为真,否则为假)
||逻辑或运算符,或者的意思 (两侧至少有一个为真,则为真,同假才假)
九,移位运算符
左移 << , 右移 >>
作用:对整数的二进制位进行整体左右移动,只针对整型(int,char,long等)
左移<<
二进制整体向左移,右边空出来补0;等价数学效果:乘以2的n次方
举例一个二进制数 0110 ,它的十进制数是6
计算过程: 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 6