运算符与分支结构
运算符
赋值运算符
算术运算符
关系运算符
逻辑运算符
位运算符
sizeof运算符
一 算术运算符
1 一元运算符:++,--
int main() { int a = 5; int b = a++; printf("b = %d\n",b); printf("a = %d",a); return 0; }
输出:
b = 5 a = 6 Process returned 0 (0x0) execution time : 0.108 s
2 二元运算符:+,-,*,/,%
3 三元运算符:
4 复合运算符
int main() { double a = 2.3; double b = 1.8; printf("%.2lf / %.2lf = %.2lf",a,b,a/b); return 0; }
输出:
2.30 / 1.80 = 1.28 Process returned 0 (0x0) execution time : 0.112 s
二 关系运算符
>,<
>=,<=
==,!=
关系运算符可以比价大小,高低,长短
int main() { int a = 5; int b = 6; printf("%d\n",5>6); return 0; }
输出;
0 Process returned 0 (0x0) execution time : 0.121 s
在C语言中,0 表示 假,1(非0)表示真。
三 逻辑运算符
&& 且 两个条件同时为真时,结果为真
|| 或 两个条件有一个为真,结果为真
! 取反 条件为真时,结果为假。条件为假时,结果为真。
四 位运算符
& 按位与
| 按位或
~ 按位非
^ 按位异或
<< 左移
>> 右移
>>> 无符号右移
五 sizeof 运算符
使用sizeof运算符可以获得数据类型占用内存空间的大小。
参数可以是类型,也可以是某个数值。
int main() { printf("int %d\n",sizeof(int)); printf("float %d\n",sizeof(2.3f)); printf("double %d",sizeof(2.3)); }
输出:
int 4 float 4 double 8 Process returned 0 (0x0) execution time : 0.111 s
六 算术运算符的优先级
() sizeof ++ --
!
算术运算符
关系运算符
&&
||
赋值运算符
单目运算符包括 !,~, ++, --, sizeof,优先级最高
优先级最低的是赋值运算符
可以通过()控制表达式的运算顺序,()优先级最高
从右到左结合性的只有赋值运算符,三目运算符,和单目运算符
算术运算符 > 关系运算符 > 逻辑运算符
七 if语句
(part 1 )
注意格式,和python不太一样。
int main() { if (条件为真) { 代码1 } else { 代码2 } }
示例:
#include <stdio.h>s #include <stdlib.h> int main() { if (100>90) { printf("100 big"); } else { printf("90 big"); } }
输出:
100 big Process returned 0 (0x0) execution time : 0.181 s
(part 2 )多重 if 结构
格式
int main() { if (条件1) { 代码1 } else if (条件2) { 代码2 } else { 代码3 } }
八 switch结构
格式
#include <stdio.h>s #include <stdlib.h> int main() { switch(表达式){ case 常量1: 语句1; break; case 常量2: 语句2; break; ...... default: 语句; } }
注意点
break 跳出switch结构
switch 后面的 表达式只能是整型或字符型
case 后常量表达式的值不能相同
case后允许多条语句,不需要大括号
case 和 default 子句的先后顺序可以自动变动
default 子句可以省略
示例
int main() { int mouth; printf("input the month:"); scanf("%d",&mouth); switch (mouth) { case 1: printf("31 days\n"); printf("1 month"); break; case 2: printf("2 month\n"); printf("28 days"); break; case 3: printf("3 month\n"); printf("31 days"); break; default: printf("unsupportable!"); } }
九 switch 与 多重 if 对比
相同点
都是用来处理多分支条件的结构
不同点
switch:等值条件判断 -- 条件是有限个的时候(杀鸡刀)
多重 if :判断某个连续区间的情况(杀牛刀)