一、变量赋值
1.赋初值(初始化,变量开辟空间时同时赋值),如int i= 5
2.赋值(已有空间)如i = 5
3.初始化效率更高
二、运算符需要几个操作数即为几目运算符
1.求余(%):左右两个操作数均为整形或相兼容的数据(求余表达式符合与左操作数有关)
2.除(/):分母不能为零
3.自增(++):
i++ | 先用后加 | 先拷贝一份i,再改变原本i的值,此时表达式值为i原本的值 |
++i | 先加后用 | 直接改变i的值 |
++i效率高于i++
i++拷贝的i为临时变量(匿名变量),用完即销毁
4.lvalue(leftvalue):左值(也为locatable),能在内存中定位,即为左值,利用&可以获得地址,即为左值
5.rvalue(rightvalue):右值(rightable),不能定位,即为右值
6.左值一般为变量,可以改变,常量一般为右值,不可以改变
7.临时变量为右值,不能被赋值,不能自增,
8.const定义后,变量不能改变,但可以定位
9.逗号表达式(顺序求职运算符)从左向右运算
三、各类型数据间的混合运算
1.隐式转换
char 、short类型必转为int
float必转为double
低级别转换为高级别
2.显式转换
(类型)可以强制转换为该类型数据,这种强制是临时的,后面会消除
五、 不同数据类型之间混合赋值
1.double = int(double可以显示整数和小数,无错误
2.int=double(int不能显示小数,只保留整数,为小数部分截断)
3.short =int(s字节少于int,低位保留,高位舍弃)
4.int =short(符号为正,前面补0;符号为负,前面补1)
5.unsigned int = int(直接拷贝)
6.int= unsigned short(前面补)
六、printf函数小数点后输出6位有效数字,默认四舍五入,且后面的()为调用函数运算符
七、编译器只做类型检查,只要类型正确即可编译成功,故5/0可编译通过,但运行会导致程序崩溃