先对昨天的内容进行一些补充
转义字符的使用
运算符和表达式
(1)基本的算数运算符
+(加法运算符);-(减法运算符);*(乘法运算符);/(除法运算符);%(取余运算符)
使用 / 需要注意:当两个整形数相除时,相当于整除;除数不能为0
使用%需要注意:运算数只能是整数;结果的符号取决于左操作数的符号;除数不能为0.
表达式
由运算符 和 运算数构成字符序列;表达式都是有值的;表达式都是有数据类型的
C语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行。如果在一个运算对象两侧的运算符的优先级别相同,则按照结合性进行结合
优先级和结合性
在C语言中,运算符的优先级和结合性如下
隐式类型转换
强制类型转换
语法:(类型名)转换目标
例如(int)12.462 就是把12.462转换为int性的数据
(2)自增自减运算符
作用是使变量的值增 或减 1
i++ (后置加加——先用后加)
++i (前置加加——先加后用)
注意:i++,++i如果单独使用,效果上没有区别;先用后加,先加后用只在参与其他运算时才起作用;自增自减的运算数必须是一个可修改的变量
如遇到 i+++i 这种组合,可用贪心法来分割
贪心法:从做到右逐个扫描,将字符尽可能多的组合成C语言运算符
分割后为 i++ +i
(3)赋值运算符
赋值符号"="就是赋值运算符,它的作用是将一个数据赋给一个变量
int a;
a = 10; //运算结果就是a的值,类型就是a的类型
在不同类型间赋值时
int a;
a = 1.23; //1.23是个浮点型的数据,a是个整形数据,最后输出的a = 1
当高精度的数据如double/float 向低精度的数据类型赋值时会发生精度丢失的情况
而在整形中
像int这种长类型向short这种短类型赋值时,会发生高位截断现象
short i;
i = 0x12345678; //short类型的大小只有2字节,0x12345678有4字节
最后输出的i = 0x5678 只保留低位的数据
在短类型向长类型赋值时,分有符号signed和无符号unsigned两种情况
无符号时会在输出结果的高位补0,有符号时则会在高位上补符号位
(4)逗号运算符
‘,’ 就是逗号运算符。
语法为:表达式1,表达式2,表达式3,······表达式n
过程:1 + 2,i + 1,3+4 //从左到右挨个运算;结果是整个式子中最后一个表达式的运算结果