C语言运算符:
- 算数运算符:+ ,-,*,/,%
- 关系运算符:>,<,==,!=,>=,<=
- 位运算符:>>,<<,~,&,|,^
- 逻辑运算:&&,||,!
- 条件运算符(三目运算):?:
- 指针运算:&,*
- 赋值运算:=
- 逗号运算:,
- 字节运算:sizeof
- 强制运算符:(类型名)(表达式)
- 结构体成员运算符:->
算数运算符实例:
1 #include <stdio.h> 2 3 void main() 4 { 5 // 声明 6 int num1 = 200; 7 int num2 = 100; 8 9 // 10 printf("%d + %d = %d\n",num1, num2, num1 + num2); // 加法 11 printf("%d - %d = %d\n",num1, num2, num1 - num2); // 减法 12 printf("%d * %d = %d\n",num1, num2, num1 * num2); // 乘法 13 printf("%d / %d = %d\n",num1, num2, num1 / num2); // 除法 14 printf("%d %% %d = %d\n",num1, num2, num1 % num2); // 取余 200/100 的值为2,没有余数,所以值 200%100 值为 0 15 }
位运算:
“位与” 运算,运算符为: &
12 & 8 运算过程:
运算法则:两个操作数二进制表示,只有对应位都是 1 时,结果才为 1 ,否则为 0
“位或” 运算,运算符为: |
4 | 8 运算过程:
运算法则:两个操作数二进制表示,只有对应位都是 0 时,结果才为 0 ,否则为 1
“位异或” 运算,运算符为: ^
31 ^ 22 运算过程:
运算法则:两个操作数二进制表示,对应位相同(同时为0或同时为1),结果为 0,否则为 1
“位取反”运算,运算符为:~
运算法则:操作数二进制表示,将 1 修改为 0 , 0 修改为 1
左移运算: <<
左移运算是将一个二进制操作数向左移动指定的位数,左边( 高位端 )溢出位将被丢弃,右边(低位端)的空位将用 0 补充,左移运算相当于乘以二的 n 次幂。
例如 :表达式 48 << 1 (00110000 << 1)的值就是 96 ,即 48 乘以 2 的1次幂(48 * 2)右移运算:>>
右移运算是将一个二进制操作数向右移动指定的位数,右边(低位端)溢出位被丢弃,而在填充左边(高位端)空位时,如果最高位是0(正数),左侧空位填入0,如果最高位是1(负数),左侧空位填入1。右移位运算,相当于除以 2 的 n 次幂。
实例:
1 #include <stdio.h> 2 3 void main() 4 { 5 printf("12 & 8 = %d\n", 12 & 8); // 12 & 8 = 8 6 printf("4 | 8 = %d\n", 4 | 8); // 4 | 8 = 12 7 printf("31 ^ 22 = %d\n", 31 ^ 22); // 31 ^ 22 = 9 8 printf("~22 = %d\n", ~22); // ~22 = -23 9 10 printf("48 << 1 = %d\n", 48 << 1); // 48 << 1 = 96 11 printf("48 >> 1 = %d\n", 48 >> 1); // 48 >> 1 = 24 12 }
逻辑运算:
&& (与)
(条件1) && (条件2)
只有两个条件都为真时,结果才为真
|| (或)
(条件1) || (条件2)
两个条件有一个为真即可成立,结果就为真
! (非)
! (条件)
条件为真时,结果为假
条件为假时,结果为真
算数优先级:(从高到低)
- (),sizeof,++,--
- !
- 算数运算符
- &&
- ||
- = (赋值运算符)
分支结构:
语法:
if(条件1) { 代码段1 } else if(条件2) { 代码段2 } else { 代码段3 }以上结构首先判断条件1是否成立,如果条件1成立就执行代码段1,然后结束程序;如果条件1不成立,则判断条件2是否成立,如果条件2成立执行代码段2,然后结束程序;如果条件2不满足,,则执行代码段3,最后结束程序。
实例:
1 #include <stdio.h> 2 3 void main() 4 { 5 // 声明 6 int score; 7 8 // 9 printf("请输入你的成绩:\n"); 10 scanf("%d", &score); 11 12 if (score >= 80 || score <= 100) 13 { 14 printf("您的成绩优秀~~\n"); 15 } 16 else if (score >= 60 || score < 80) 17 { 18 printf("你的成绩良好~~\n"); 19 } 20 else 21 { 22 printf("小老弟,你的成绩有点危险噢~~~\n"); 23 } 24 }