转义字符、算术运算、类型转换...

目录

转义字符

运算符

优先级 和 结合性

+加法运算符 -减法运算符 

* 乘法运算符 /除法运算符  %求余运算符 

/的注意要点: 

%的注意要点:

--自减运算符

++自增运算符

&取地址运算符 

,逗号运算符 

=赋值运算符

不同类型的数据间混合赋值总结

高精度——>低精度

长类型——>短类型

短类型——>长类型

表达式

隐式类型转换

强制类型转换


转义字符

是以一个字符 "\"开头的字符序列

注意:区别普通字符和转义字符——例子:'n'表示字符n,'\n'转义字符,表示换行。

eb6a000239284cd1ace590562dcad7da.png

运算符

优先级 和 结合性

优先级高,并不一定先运算,但是一定是先结合。

不同优先级的运算混合,高优先级的先结合。

同一优先级的运算混合,按照结合性结合。

运算的对象的个数:单目、双目、三目

+加法运算符 -减法运算符 

两目运算符、优先级为4、结合方向自左至右 

* 乘法运算符 /除法运算符  %求余运算符 

两目运算符、优先级为3、结合方向自左至右

/的注意要点: 

        如果是两个整型数相除,此时相当于是整除的效果 
        除法运算中 除数不能为 0

%的注意要点:

        除数不能为0
        求余运算,运算数不能是小数。必须是整数
        结果的符号 ,取决于 左操作数 的符号

%求余的应用:判断奇数偶数

number % 2 = 1——奇数    number % 2 = 0——偶数

此外,number%n的取值范围为0〜n-1

--自减运算符

表示一次-1 单目运算符、优先级2、结合方向自右至左

++自增运算符

表示一次+1 单目运算符、优先级2、结合方向自右至左

例子:

int a = 1;

a++;后置加加——先用(表达式的结果)后加(让i自增)

++a;前置加加——先加(让i自增)后加(表达式的结果)

注意:a++;和++a;

        如果单独使用,效果一致

        参与到别的运算中才发挥作用

        ++a的效率可能更高,因为不需要开辟空间创建临时变量

        运算数a必须是一个可修改变量(10++这样的写法就是错误的)

error: lvalue required as increment operand

这个错误涉及到左值和右值的知识:

        int a;
       a = 10; (正确) //能放在= 左边的 值 左值 (eg: 变量)
       10 = a;(错误) //只能放在 = 右边的 右值 (eg: 常量)

注意++和--的使用

&取地址运算符 

单目运算符、优先级2、结合方向自右至左

获取变量对应内存空间的首地址(地址编号)

&a;(正确)左值可定位(eg: 变量)

&10;(错误)右值不可定位(eg: 常量、表达式)

,逗号运算符 

优先级最低、结合方向自左至右 

语法:表达式1,表达式2,表达式3,...,表达式n

逗号运算表达式的结果是式子中最后一个表达式运算的结果

=赋值运算符

赋值符号"="就是赋值运算符,它的作用是将一个数据赋给一个变量

int a;
a = 10; 赋值运算 
        赋值表达式:结果 就是a的值 、类型 就是a的类型 
a=(b=(c=10))  可以连续赋值 
+=  赋值运算 a += 1 // a = (a + 1)
a -= 1 // a = a - 1
赋值运算符还有+= 、-= 、*= 、/=....

不同类型的数据间混合赋值总结

高精度——>低精度

精度丢失:当将高精度类型的数据赋值给低精度类型时,由于低精度类型无法存储高精度类型的全部信息,可能会导致数值精度的丢失。

例如,将 double 类型的数据赋值给 float 类型时,可能会丢失一些小数部分的精度。

长类型——>短类型

高位截断:当将长类型的数据赋值给短类型时,超过短类型范围的高位部分将被截断。这意味着可能会丢失高位信息,导致数据变化。

例如,将 int 类型的数据赋值给 short 类型时,超过 short 范围的高位部分将被截断。

短类型——>长类型

1.无符号短类型(高位补0):无符号类型在扩展为更长的类型时,高位将自动填充 0。

例如,将 unsigned char 类型的数据赋值给 unsigned int 类型时,高位将被填充为 0。

2.有符号短类型(符号位扩展:高位补符号位):有符号类型在扩展为更长的类型时,将使用符号位进行扩展,也就是高位将被填充为符号位的值。如果符号位是 0(正数),则高位补 0;如果符号位是 1(负数),则高位补 1。

例如,将 char 类型的数据赋值给 int 类型时,如果 char 是负数,int 的高位将被填充为 1。

表达式

运算符和运算数构成的字符序列

注意:

        表达式都是有值的、有类型的

隐式类型转换

从右向左  :必转。
从下向上  :低精度和高精度混合运算时,低精度往高精度转。

eab49d9da2684ff7a654921dceab35dc.png

强制类型转换

格式:(类型)运算数;

注意:强制类型的转换不会影响运算数本身。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值