C语言中常用的运算符和逻辑控制,今天做了一个小小的回顾ヾ(◍°∇°◍)ノ゙
C语言运算符详解
1. 算术操作符:+、-、 * 、/、%
1.1 + 和 -
(1)+和-用来完成加法和减法。
(2)+和-都是有2个操作数的,位于操作符两端的就是它们的操作数,这种操作符也叫双目操作符。
1.2 *
(1)运算符*用来完成乘法。
1.3 /
(1)运算符/用来完成除法。
(2)除号的两端如果是整数,执行的是整数除法,得到的结果也是整数。
尽管变量x的类型是float(浮点数),但是6 / 4得到的结果是1.0,而不是1.5。原因就在于 C 语言里 面的整数除法是整除,只会返回整数部分,丢弃小数部分。如果希望得到浮点数的结果,两个运算数必须至少有一个浮点数,这时 C 语言就会进行浮点数除法。6.0 / 4表示进行浮点数除法,得到的结果就是1.5。
1.4 %
(1)运算符%表示求模(余)运算,即返回两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数。
2. 赋值操作符:=和复合赋值
2.1 复合赋值符
(1)在写代码时,我们经常可能对一个数进行自增、自减的操作
+= -=
*= /= %=
>>= <<=
&= |= ^=
3. 单目操作符:++、--
(1)前面介绍的操作符都是双目操作符,有2个操作数的。C语言中还有一些操作符只有一个操作数,被称为单目操作符。++、-- 就是单目操作符。
3.1 ++和--
(1)++是一种自增的操作符,又分为前置++和后置++;--是一种自减的操作符,也分为前置--和后置--。
(2)int b = ++a; //++的操作数是a,是放在a的前面的,就是前置++
用法先加一后使用
(3)int b = a++; //++的操作数是a,是放在a的后面的,就是后置++
用法先使用后加一
(4)--同理
4. 移位运算符
4.1左移:用二进制法表示左边抛弃右边补零
(1)C语言标准规定导致符号位改变的带符号整数的左移操作属于“未定义行为” (Undefined Behavior, UB)。
(2)C标准不保证结果一定是那个负数值。
(3)编译器可以做任何处理,包括产生一个警告、得到预期的负数值、得到一个完全意外的值,甚至在某些极端情况下导致 程序崩溃。
4.2右移:左边用原该值的符号位填充,右边抛弃
5. 位操作符
(1)& //按位与:俩个二进制数&,对应的比特位上只要有0,那么按位与结果对应位上就是零
(2)| //按位或:只要对应的比特位上有1,那么结果对应的比特位上就是1
(3)^ //按位异或:如果对应的比特位上二进制不一样,那么对应位用1表示;俩个一样的数字,异或出来就是零
(4)~ //按位取反:~a=-(a+1)
6.关系运算符
> 、 > = 、 < 、 < = 、 = = 、 ! =
7. 逻辑运算符
逻辑运算符包含:逻辑与:&&、逻辑或:||、逻辑非:!。
8. 逗号表达式
(1)逗号表达式,就是用逗号隔开的多个表达式。
(2)逗号表达式会从左向右依次计算所有子表达式,整个表达式的最终结果是最后一个子表达式的结果。
C语言逻辑控制详解
1. 顺序结构
程序按照代码书写的顺序一行一行执行。
2. 选择结构
2.1 if语句
2.2 逻辑运算符
逻辑运算符提供逻辑判断功能,用于构建更复杂的表达式,主要有下面三个运算符。
(1)!:逻辑取反运算符(改变单个表达式的真假)。
(2)&&:逻辑与运算符,就是“并且”的意思(两侧的表达式都为真,则为真,否则为假)。
(3)||:逻辑或运算符,就是“或者”的意思(两侧至少有一个表达式为真,则为真,否则为假)。
(4)C语言中,非0表示真,0表示假。
2.3 switch语
(1)switch语句是一种特殊形式的 if...else 结构,用于判断条件有多个确定结果的情况。它把多重的else if改成更易用、可读性更好的形式。
switch语法格式:
switch (整型表达式)
{
case 整型常量1: 语句;
case 整型常量2: 语句;
...
default: 语句;
}
(2)上面代码中,根据表达式expression不同的值,执行相应的case分支。如果找不到对应的值,就执行default分支。
(3)switch后的expression必须是整型表达式。
(4)case 后的值,必须是整型常量表达式。
注意:
1. 每个case后面的的break是不能进行省略的,若省略了,则会一直执行遇到下一个break结束。
2. case和后面的数字之间必须有空格。
3. default语句是可选的,作用是在所有case都不匹配时执行。
3. 循环结构
3.1 while循环
条件为真时重复执行代码,适合循环次数未知的场景。
3.2 for循环
(1)已知循环次数时使用,是三种循环中使用最多的,适合遍历数组或集合。
for语法格式:
for(表达式1; 表达式2; 表达式3)
{
// 循环体语句
}
表达式1: 用于循环变量的初始化。
表达式2: 用于循环结束条件的判断。
表达式3: 用于循环变量的调整。
3.3 do-while循环
(1)在循环语句中do-while语句的使用最少,它保证循环体至少被执行一次。
do-while语法格式:
do
{
// 循环体语句
}
while(表达式);
(2)先执行一次循环体,然后再判断表达式。只要表达式为真,就继续循环。
(3)while和for这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环; 而dowhile循环则是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,
(4)表达式为假,则不再继续循环
3.4 循环嵌套
(1)循环是可以进行嵌套的,不管是for循环嵌套while循环,还是while循环嵌套for循环都是可以的。一个循环体内又包含另一个完整的循环结构,称为循环的嵌套
3.5 break 和 continue
(1)break 和 continue 是两个用于在循环内部精确控制循环流程的关键字。
break: 立即终止并跳出当前所在的循环。
continue: 跳过本次循环中尚未执行的语句,直接开始下一次循环的判断和执行。
(2)相比于while循环当中的continue,for循环在遇到continue之后,他会执行下一次
4万+

被折叠的 条评论
为什么被折叠?



