1.运算符
1.1 逻辑运算符
&&逻辑与:全真则真,一假则假
||逻辑或:一真则真,全假则假
!逻辑非:非真则假,非假则真
练习:
截断法则:
逻辑与运算中,前边的表达式结果为假,后边的表达式不再执行,直接返回假
逻辑或运算中,前边的表达式结果为真,后边的表达式不再执行,直接返回真
1.2 位运算符
二进制数 0 1
& | ^ ~ << >>
&位与:全1则1,有0则0
|位或:有1则1,全0则0
^异或:相同为0,不同为1
~取反:1>0 0>1
计算机中,整数以二进制的补码形式存储,计算
原码、反码、补码如表所示
正数 相同 相同 相同 负数 相同 除符号位外,其他位取反 反码+1
符号位在二进制码的最左边,如果该值为1则为负数,0为正数
例:
12:
0000 0000 0000 0000 0000 0000 0000 1100
-12:
1000 0000 0000 0000 0000 0000 0000 1100
<<左移
左移n位,右边补充n个0
公式:a=a*2^n(a为一个十进制数,n为移动的位数)最终结果向下取整。
>>右移
右移n位,最右边舍弃n位
公式:a=a/2^n(a为一个十进制数,n为移动的位数)最终结果向下取整,注意负数的大小。
1.3 关系运算符
> 大于>=大于等于 < 小于<= 小于等于==等于 !=不等于
==等于 =赋值
2--9 x>2&&x<9(表示x大于2小于9必须用&&连接)
1.4 三目运算符 (选择运算符)
? : ;
表达式1?表达式2:表达式3;
(若表达式1成立,则运行表达式2,否则执行表达式3)
1.5 赋值运算符
=赋值 += 加一再赋值 -= 减一再赋值*=先乘乘再赋值 /=先除以一个数再赋值 除以%=先取模再赋值。
a-=5; a=a-5;
1.6 运算符优先级
单算移关与 异或逻条赋
单目运算符: ~ ++ -- !
算术运算符: * / % + -
移位运算符: << >>
关系运算符: > >= < <= == !=
位与运算符: &
异或运算符: ^
位或运算符: |
逻辑运算符: && ||
条件运算符: ?:
赋值运算符: = += -= *= /= %=
2.变量
格式:
存储类型 数据类型 变量名
名字 | 字节大小 | |
int | 整形 | 4 |
char | 字符型 | 1 |
short | 短整型 | 2 |
long | 长整型 | 8 |
float | 单精度浮点型 | 4 |
double | 双精度浮点型 | 8 |
局部变量和全局变量的区别:
局部变量 | 全局变量 | |
定义位置 | 函数体内部 | 函数体外部 |
初值 | 未初始化,值是随机值 | 未初始化,值是0 |
存储位置 | 栈区 | 全局区 |
生命周期 | 同当前函数体共存亡 | 同整个程序共存亡 |
作用域 | 当前函数体内部 | 整个程序 |
[3]常量
程序运行过程中不会发生变化
3.1 整型常量
八进制 十进制 十六进制
3.2 字符常量
字符 由' '包裹一个字符
字符串 由" "包裹,由'\0'作为字符串的结束标志
3.3 浮点型常量
float double
3.4 标识常量
宏定义:
格式:#define 宏名 常量值或表达式或代码段
宏名:一般用大写表示,为了和普通变量区分开
注意:先原样替换,再计算。
-
1(a=a/(2+1*2+1/2+1*2+1))