1.类型转化:
(1)隐式转化:整数除以整数为整数;小数除整数为小数
当赋值号两边类型不同时,自动转化为精度较高的类型。
(2)显式转化:强制类型转化:并不改变变量的类型,只做临时转化
float_f = (float)int_t/int_t1
2.位运算符
(1)二进制数:由0和1组成
2^0+2^1+2^2+2^3+2^4+....
0101010 0101110 00101010
(2)八进制数:由0~7组成的,八进制数开头是数字0,以区分八进制数
0212 0322 0209
(3)十六进制数:由数字0~9和字母a~f或者A~F组成并且以0x或0X开头
0x213 0x23a 0Xab21
(4)二进制 十进制 八进制 十六进制
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 8 10 8
1001 9 11 9
1010 10 12 a/A
1011 11 13 b/B
1100 12 14 c/C
1101 13 15 d/D
1110 14 16 e/E
1111 15 17 f/F
(5)位操作
&:位与 4&3 = 0(0000)
12&7 = 4(0100)
转化为对应二进制数运算对应位同时为1,才为1
|:位或 4|3 = 7(0111)
转化为对应二进制数运算,按位相或,即有1取1
~:非(取反) ~23 = -24 (~取负数减1)
计算机是补码存储,原码输出!!!
原码:正数的原码是其本身
反码:符号位不变,其它位按位取反
补码:负数的补码是其正数的原码取反加1
0001 0111
补码: 1110 1000
反码: 1110 0111
原码: 1001 1000
^:异或: 4^7 = 3
对应位不同为1,相同为0;
<<:左移
8<<2 = 32
转化为二进制,然后左移2位,低位补0
左移几位,则乘以2的几次方
>>:右移
8>>2 = 2
转化为二进制,然后右移2位,高位补0
3.赋值操作符
赋值号:=
+= -= *= /= %=
&= |= >>= <<=
4.逻辑运算符和条件运算符
(1)逻辑运算符
&&:逻辑与
表达式1 && 表达式2
当表达式1和2同时为真时,结果为真,否则为假
注意:当表达式1为假时,表达式2无需计算,结果为假
||:逻辑或
表达式1 || 表达式2
表达式1和2只要有一个为真,结果就为真
注意:当表达式1为真时,表达式2无需计算,结果为真
!:非
若表达式为真,则结果为假
若表达式为假,则结果为真
(2)条件运算符
?:
表达式1 ? 表达式2:表达式3
若表达式1为真,则执行表达式2,否则执行表达式3
a>b?a:b
5.运算符优先级
括号成员第一,全体单目第二,乘除余三,加减四;
位移五,关系六,等于不等排第七;
位于,异或和位或八九十,逻辑或和与十二与十一;
条件高于赋值,逗号运算最低。
6.C语言的三大结构
顺序结构、分支结构、循环结构
1.分支结构
(1) if(表达式){,,,,}
表达式为真,则执行在{}里的语句,否则不执行
(2)if(){}
else{}
(3)if
else if
else if
...
else
(4)if的嵌套使用
(5)使用if注意事项
80<num<90 //错误
if条件句后面只有一条语句时,可以不加{};
但此语句不能是变量定义语句。
在if的{}里定义的变量,只能在{}中使用,在{}外无效!!!
2.switch....case:
(1) switch(option)
case option:
break;
....
default:
根据option的值执行case语句,若没有与之对应的值
则执行default语句
(2)注意事项:
default语句可以放在switch{}里的任意位置:
case语句后的{},可以省略不写,
当case后的执行语句超过3条,则建议加{}!!!
(3)case语句中的break视情况而定是否写:
若case语句中无break,则顺次执行所有的case语句
知道把所以case语句全部执行完,退出switch语句和;
3.循环结构
while() do{}while() for(;;)
(1)while(表达式)
{
//执行语句
}
先判断条件是否满足执行条件,满足则执行循环体,
不满足则退出循环,循环结束之后再判断。。。
(2)break/continue
break:
跳出循环!
continue:
跳过这次循环执行下一次循环!
(3)do{}while();
do
{
//循环体
}while(表达式);
先执行后判断!
(4)for(;;)
for(表达式1;表达式2;表达式3)
{
//循环体;
}
表达式1:循环条件初始化
表达式2:循环结束条件或者循环执行条件
表达式3:循环步长或者变量值的更新
注:表达式1,2,3可以任意省略或全部省略
但是“;;“不可省略!