一。数据类型转换 回顾
1.同种基本数据类型:
如整型——整型,浮点型——浮点型,比较内存空间大小;
字节多的类型——字节少的类型:自动转换
字节少的类型——字节多的类型:强制转换(可能会有部分数据损失)
2.不同种基本数据类型:
如 int——float 比较精确程度,浮点型都可以容纳整型,反之只会保留浮点型的整数部分;
3.不同种数据类型
如基本数据类型—引用数据类型,使用 包装类;
二.运算符分类
1.操作数的数目:
单目:如 a++,只有一个操作数 a;
双目:如 a+b,有两个操作数 a,b;
三目:如(a+b)?x:y;只有三个操作数:(a+b),x,y;
2.运算符的功能:
算术运算符:+ - * / % ++ --;
逻辑运算符:! & | && ||;
关系运算符:> < == >= <= !=
3.自增,自减运算符
这里着重解释自增,自减运算符:
如 int x=1;
int y=x++;
则输出为:x=2,y=1;
因为 int y=x++;相当于 int y=x;x++;
4.底层原理
下面再举一个例子进行讲解底层原理;
int a=1;
a=a++;
a==?
a==1;
在进行运算符运算的时候,变量会创建一个临时的副本(赋值后自动消失),创建副本时间的先后影响运算的其最终结果:
自增符号在前(++a),先运算再创建副本;
自增符号在后(a --),先创建副本再运算;
案例中,a=a++,先创建副本a`==1,接着执行a++,a==2,再将副本的内容赋给a,由于变量只能存放一个值,所以a==1;
//5.辨析 a++,a=a++;(暂时如此,后续更改)
int a=1;
for(int i=1;i<=100;i++){
a++; // a=a++
{
输出a==101; // 输出a==1