cp2 C语言程序设计--运算符与表达式(9-10)
第二章 运算符与表达式 运算符 表达式 本章内容 C语言中运算符的分类 各种运算符的使用方法 表达式的概念 常用的表达式 必须掌握的内容 自增、自减运算符 表达式的概念和使用 常用运算符的使用方法 2.4 运算符和表达式 C 运 算 符 算术运算符:(单目运算: - ++ -- 双目运算: + - * / % ) 关系运算符:(< <= == > >= !=) 逻辑运算符:((! && ||) 位运算符 :(<< >> ~ | ^ &) 赋值运算符:(= 及其扩展) 条件运算符:(?:) 逗号运算符:(,) 指针运算符:(* &) 求字节数 :(sizeof) 强制类型转换:(类型) 分量运算符:(. ->) 下标运算符:([]) 其它 :(( ) -) < > 学习运算符应注意: 运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型 < > 基本算术运算符: + - * / % 结合方向:从左向右 优先级: - ---->* / % -----> + - (2) (3) (4) 说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数 %要求两侧均为整型数据 例 5/2 = -5/2.0 = 例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2 < > 例 5/2 = 2 -5/2.0 = -2.5 例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (?) 算术运算符和表达式 自增、自减运算符 ++ -- 作用:使变量值加1或减1 种类: 前置 ++i, --i (先执行i+1或i-1,再使用i值) 后置 i++,i-- (先使用i值,再执行i+1或i-1) < > 例7: j=3; k=++j; j=3; k=j++; j=3; printf(“%d”,++j); j=3; printf(“%d”,j++); a=3;b=5;c=(++a)*b; a=3;b=5;c=(a++)*b; //k=4,j=4 //k=3,j=4 //4 //3 //c=20,a=4 //c=15,a=4 Ch2_007.c 自增、自减运算符++ -- 作用:使变量值加1或减1 种类: 前置 ++i, --i (先执行i+1或i-1,再使用i值) 后置 i++,i-- (先使用i值,再执行i+1或i-1) 说明: ++ -- 不能用于常量和表达式,如5++,(a+b)++ ++ --结合方向: 自右向左 优先级:- ++ -- ------>* / % ----->+ - (2) (3) (4) 例8:-i++ ? -(i++) i=3; printf(“%d”,-i++); 例 j+++k; (j++)+k; ch2_008.c 关系运算符和表达式 种类:< <= == >= > != 结合方向:自左向右 优先级别: < <= > >= == != 优先级6(高) 优先级7(低) 例 c>a+b //c>(a+b) a>b!=c //(a>b)!=c a==bc //a=(b>c) 关系表达式的值:是逻辑值“真”或“假”,用1和0表示 例 int a=3,b=2,c=1,d,f; a>b (a>b)==c b+cb f=a>b>c < > //表达式值1 //表达式值1 //表达式值0 //d=1 //f=0 关系运算符 关系运算注意: < > 例 若a=0; b=0.5; x=0.3; 则 a<=x<=b的值为 0 例 5>2>7>8在C中是允许的, 值为 0 例 int i=1, j=7,a; a=i+(j%4!=0); 则a= 2 例