一、运算符
1、赋值
赋值运算符:=
a = b;
把b的值赋给a;
2、算数运算符
主要有:
+ | 加法:a + b |
- | 减法: a - b |
* | 乘法: a * b |
/ | 除法: a / b |
% | 取模: a % b(a/b的余数) |
++ | 自增: a++(相当于a + 1) |
-- | 自减: a--(相当于 a -1 ) |
注意:
1、取模运算左右两边必须为整数
2、++ 和 -- 运算符:
放在变量前面表示:先对齐进行+1或者-1,在进行运算
放在变量后面表示:先对齐进行运算,在对其进行+1或者-1
3、逻辑运算符
!:取反
示例:
bool a = true;
则 !a = false;
逻辑与 &&
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 假 |
短路法则:如果表达式1为假,则表达式2不执行
示例:
int a = 1;
int b = 0;
(a++ && b++) ? a++ : ++b;
printf("%d %d\n",a,b)
结果为: a = 2 b = 2)
逻辑或: ||
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
短路法则:如果表达式1为真,则表达式2不执行
3、关系运算符
关系运算符:
<: 小于
<=: 小于等于
ps: > 同上
== : 判断两个数是否相等
= :赋值运算符
!= : 不等于
示例:
int a = 1;
int b = 2;
a==b;判断a是否等于b
a=b;是把b的值赋给a
4、位运算符(表示数据的二进制位进行逻辑运算)
注意:数字在计算机中的存储形式是补码
正数的补码跟原码相同
负数的补码是在原码的基础上先求反码再加1(求反码时符号位不变)
~:二进制按位取反
&:按位与
二进制两边都为1,结果才是1
|:按位或
有1就为1
^: 按位异或
不同为1,相同为0
<<:
左移:二进制位向左移位,右边补0
>>:
右移,二进制位向右移位:
算数移位: 右边丢弃,左边补原符号位
逻辑移位:右边丢弃,左边补0
#include<stdio.h>
int main()
{
int a = 1;//0001
int b = 2;//0010
a = a ^ b;//0011
b = b ^ a;//0001 1
a = a ^ b;//0010 2
printf("%d %d\n",a,b);
}
#include<stdio.h>
int main()
{
int a = 10;
int b = a << 2;
printf("%d\n",b);
}
5、转义字符
\n | 换行符 |
\t | 水平制表符 |
\\ | \ |
\' | ' |
\? | ? |
\ddd | 八进制数。\141--->a |
\xdd | 十六进制数 |
\b | 退格符 |
\r | 回车符 |
\f | 换页符 |
\v | 垂直制表符 |
\a | 警报符 |
\0 | 空字符 |
6、复合运算
+= :
a+= b;等价于a = a+b;
-=、*=等复合运算符同上
7、条件运算符
三目运算
格式:表达式1 ? 表达式2 :表达式3
如果表达式1的结果为真,则执行表达式2,否则执行表达式3
示例:
a > b ? a:b;
如果a > b则执行冒号之前的表达式,则输入a的值,如果a<b则执行冒号之后的值,则输出b;
8、逗号运算符
逗号运算符,从左到右进行计算,结果取最右边的表达式
int a = 5,b = 3,c;
a += 4 ,b = a + 10,c = a + b;
// a = 4+5 = 9; b = 9 + 10 = 19 c = 19 + 9 = 28
结果为:
28
9、sizeof运算
sizeof运算符:计算数据占用内存的大小,或数据类型的长度
sizeof(int)---->计算int类型的长度
int a;
sizeof(a);---->计算a所占内存的大小
示例:
sizeof(int) ---> 4
二、表达式
由 = 构成
示例:
a = 10
三、语句
表达式可以独立形成语句,称为表达式语句
const = 1这是一个表达式
const = 21;这是一条语句
四、控制流语句
1、if语句
格式:
if(表达式){
代码块
}
#include <stdio.h>
int main(){
int a = 0;
scanf("%d",&a);
if(a > 0)
{
printf("haha");
}
return 0;
}
2、if-else语句
格式:
if(表达式){
代码块
}else
{
代码块
}
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d",&a);
if(a > 0)
{
printf("haha");
}else
{
printf("666");
}
return 0;
}
3、switch语句
格式:
switch(表达式){
case 整型常量1:
代码块1;
break;
case 整型常量2:
代码块2;
break;
default:
代码块;
break;
}