一、字符常量
1.转义字符:
“\n” 转换含义——表示换行;
“\t” 调到下一个制表符——制表符的宽度为8个字符;
“\b” 退格
“\r” 回车——效果是光标回到本行开头;
2.隐式类型转换 从左到右 必转
3. 强制类型转换 自己手动完成 并不会影响运算数本身
eg:(类型)运算数——(int)a;
二、运算
1.算术运算,运算符:+、-、*、/、%
2.除:/
(1)两个整型数相除,此时是相当于整除
(2)除数不为零
3、求余:% 可判断奇数或者偶数;对N求余 %N 结果一定<N
(1)求余运算必须是整数
(2)结果的符号只取决于左操作数
三、表达式
1.表达式有运算符和运算数构成的字符序列
2.表达式都是有值的
3.表达式都是有数据的
注意:
1、编译时 报错 语法错误 检查代码语法问题
2、运行时 报错 逻辑问题 检查思路或逻辑问题
3.运算时看运算符的优先级和结合性
优先级:优先级高的不一定先算,但一定先结合
结合性:同一优先级的计算,按照结合性进行结合;
运算对象的个数: 单目、双目、三目
四、自增计算:++
a++ 后置加加 先用(表达式的结果) 后加(让a自增)
++a 前置加加 先加(让a自增) 后用(表达式的结果)
注意:
1.如果二者单独使用,效果上没有任何区别
2.先用后加、先加后用,是参与其他计算时起作用
3.运算数必须是一个可修改的变量
const int a=10 a还是个变量,但是这个变量只读(不可修改)
Localtion able value //可定位的值 可定位的 左值
不可定位的 右值
&a 取地址运算 获取a对应内存空间的首地址
匿名变量
贪心法则:从左到右逐个扫描,尽可能多的结合乘C语言运算符
五、赋值运算 双目运算 自右向左
1.赋值符号“=”就是赋值运算符,他的作用是将一个数据赋给一个变量
a=10
赋值运算的结果就是 a的值
赋值运算的类型就是a的类型
2. += 赋值运算
a+=1 a=a+1 -=同理
3、不同类型混合赋值
高精度 => 低精度 精度丢失
double => int
长类型 => 短类型 高位截断
无符号短类型 => 长类型 高位补零
有符号短类型 => 长类型 符号位扩展(高位补符号位)
六、逗号运算: 顺序求值运算符 结合性自左向右
1.语法:
表达式1,表达式2,表达式3,......
2. 运算过程:从左到右,挨个运算
逗号运算表达式的结果 是 最后一个表达式的结果
七、随机操作 rand
伪随机数
int rand(void)
void srand (unsigned int seed);函数原型
void 这个函数返回值的类型
srand 函数名字
unsigned int seed 形式参数 变量——形参
srand(5) 5 是实际参数 (实参)
rand();//seed=1--->一系列的随机数0~RAND MAX
seed=2//rand---新的一系列的随机数
time t time(time t *tloc)://时间秒数
time(NUL);//返回值就是获的到的秒数值