(一)、
(1)、运算符的概念及分类
运算符是告诉编译程序执行特定算术或逻辑操作的符号。
按照功能划分:算术运算符、关系运算符与逻辑运算符、按位运算符。
运算符根据参与运算的操作数的个数为:
单目运算符、双目运算、三目运算
单目运算:只有一个操作数 如:i++ ! sizeof
双目运算:有两个操作数 比如:a+b;
三目预算:C语言中唯一的一个,也称为问号表达式 a > b ? 1 : 0 //判断a是否大于b 如果是,值就
为1 否则就为0
运算符的优先级及结合性:
C语言中各种运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符
的结合性是自左至右,即先左后右。如有表达式 x - y+z ,那么这个式子我们应该先算x-y的值,然后再算+z的值。
而右结合性如:y=z ,即我们常见到的赋值运算符。
优先级:C语言中,运算的运算优先级共分为15级。1级最高,15级最低。在表达中,优先级较高的优先级较低的
进行运算。而在一个运算量两侧的运算符,则按运算符的结合性所规定的结合方向处理。
(2)、算术运算符的介绍和使用
(3)、求余运算符的使用及注意事项
a%b 比如:10%3=1 这里余1
注意:求余的双方不能为小数
正负取决于a的值,和b没有关系 (a%b)
(4)、算术运算中类型转换问题
类型转换分为:隐式数据类型转换和显示数据类型转换
例如:int a=10; float f=3.1f; int sum=a+b; 那么像这种我们就称之为隐式转换,最后的结果
为13.1 。因为是系统自己帮我们处理的
例如:int a=10; float f=3.2f int sum=(int)(a+f); 这里我们先算括号里a+f的值,算完之后
再强转为int那么最后的结果就是13
(5)、表达式和赋值运算符
将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来的、有意义的式子称为表达式
例如:算术表达式、逻辑表达式、字符表达式等。
表达式可以是常量也可以是变量或算式,在表达式中又可分为:算术表达式、逻辑表达式和字符表串表达式
表达式的特点:
表达式是一个意义的式子,所以一定有返回值。
赋值运算符记为"=",由"="连接的式子称为赋值表达式。
赋值表达式的功能是:计算表达式的值再赋予左边的变量。
赋值运算符具有右结合性,因此a=b=c=5 可理解为a=(b=(c=5)) 就是首先将5的值赋值给变量c,然后再把
c的值赋值
给b,最后把b的值赋值给a;
其一般形式为:变量=表达式;
表达式的分类:
算术表达式、关系表达式、逻辑表达式
表达式语句:表达式后面加上分号,构成表达式语句。
(6)、复合赋值运算符
在赋值符"="之前加上其他二目运算符可构成符合赋值符。
/= 除后赋值 变量/=表达式 如:a/3;即a=a/3;
*= 乘后赋值 变量*=表达式 如:a*3;即a=a*3;
%= 取模后赋值 变量%=表达式 如:a%3;即a=a%3;
+= 加后赋值 变量+=表达式 如:a+3;即a=a+3;
-= 减后赋值 变量-=表达式 如:a-=3;即a=a-3;
(7)、自增自减运算符
自增操作或者自减操作是从右向左结合的算术运算符,++和--分别叫自增运算符和自减运算符
例如:++a,--a;(前缀表达式);其中a表示变量名,分别代表先完成变量的自增自减1运算,再用a的值
作为表达式的值。即"先变后用",也就是变量的值先变,再用变量的值参与运算。
例如:a++,a--; (后缀表达式);先用a的当前值作为表达式的值,再进行自增自减1运算。即"先用后变",
也就是变量的值先参与运算,变量的值再进行自增自减变化。
a++或者++a都是表达式,表达式是有返回值
表达式的值和变量的值不是一回事
++a或者a++表达式的值就是变量a的值
(8)、sizeof运算符
(9)、逗号运算符应用及使用注意
(10)、关系运算符优先级和结合性
(11)、逻辑运算符优先级和结合性及短路问题
(12)、三目运算符及其求值方法