1、变量赋初值
int t = 10; 初始化,在ram中随机分配内存空间时,便把10写入了
t = 10; 赋值
2、算术运算符
分为单目运算符和双目运算符,一个表达式的运算顺序需要严格执行运算表的优先级顺序。
%的左右操作数必须是整型或者于正型相兼容,最终结果的符号只与左操作数的符号有关。
编译器只做类型检查,类型正确便不会报错,导致10/0也可编译通过,但会导致程序崩溃。
临时(匿名)变量:表达式产生的结果会被随机存放到一块内存空间中,在使用结束后,系统自动收回该空间
自增 | ++i | i++ |
先加再用 | 先用再加 | |
本质 | 直接将内存空间的值+1 ++i和i是一个东西 | 将i的值复制到一块内存空间中作为i++,而原本内存空间的i+1作为新的i |
所以 ++i的效率高于i++
3、赋值运算符和赋值表达式
1> 以=为基准,左边 left value 称为左值,一般为变量
右边 right value 称为右值,一般是常量且不能当做左值的值。
也可通过是否能通过&取出地址来判断左右值,左值能取出,右值不能取出。
通过 const 修饰 i = 10;后的 i 数值只读且不能直接修改,但可通过指针修改 i 的数值,这是能取 i 的地址的,所以他是左值。
2> 不同数据类型的混合赋值运算 用途:函数传参
赋值运算的本质是内存拷贝
int = float | 小数部分截断也叫取整 |
float = int | 整型变为浮点型,数值大小不变 |
低位 = 高位 | 高位截断 |
高位 = 低位 | 通过内存拷贝,高位会出现空位,空位补0或补1,取决于低位的符号位 |
无符号 = 有符号 | 直接进行内存拷贝,两组数据在内存中一模一样,只是读的方式不一样,数值才不一样 |
siged int = unsiged short | 高位空位直接补0 |
总结:
long= | signed short 符号位是1则高位补1,是0则高位补0 |
unsigned short 统一补0 |
4、各类数值型数据间的混合运算
隐式转换:
横向箭头表示必定的转换
纵向的箭头表示四种数据类型的级别的高低,两种不同数据类型进行计算会自动转换成高级别的数值进行计算
显示转换:(类型)值
5、逗号运算符
逗号运算符也叫顺序运算符,不同表达式由逗号隔开时,只会输出最后一个表达式的值
在函数调用表达式中,逗号是实参分隔符。