C语言 第2章 C语言基础.ppt

* 说明: 关系表达式中含有多个关系运算符时,注意与数学式的区别 例如: 6x0 数学式:表示x的值在0到6之间 关系表达式:表示6与x的比较结果(0或1)再与0比较 实型数可进行大于或小于比较,但通常不进行 == 或 != 的关系运算 float x,y; x=y=1.25; fabs(x-y)1e-5 * 逻辑运算符 逻辑运算符 || ! 逻辑运算符的运算规则 运算对象 逻辑运算结果 a b ab a || b !a 非0 非0 1 1 0 非0 0 0 1 0 0 非0 0 1 1 0 0 0 0 1 * 逻辑表达式 逻辑表达式 用逻辑运算符将运算对象连接成的式子 例如:0b a b || cd a || b-5 || c/4 !x+y = z 逻辑运算符的优先级 和结合性: !是单目运算符,右结合,高于算术 和 || 是双目运算符,左结合,高于赋值运算符,低于关系运算符 * 逻辑运算规则 从左到右依次进行逻辑计算 运算对象为非0表示逻辑真 运算对象为 0 表示逻辑假 逻辑运算的结果为 0 或 1 例如设:a=15,b=0,c=-2 a b c 结果为0 a || b || c 结果为1 (a+c) || b c 结果为1 * 逻辑运算规则(续) 运算按照从左至右的顺序进行,一旦能够确定逻辑表达式的值,就立即结束运算 ——逻辑运算的短路性质 例如设:a=1,b=0,c=-2 a b c (a++) || ++ b --c 为 0,运算终止,表达式值为 0 为非0,运算终止,表达式值为 1 且a为2,b为0,c为-2 (b,c保持原值) * 关系与逻辑运算符的应用 表示数学公式abc 判断a, b, c三条线段能否组成一个三角形 a, b不同时为负 a+bc a+cb b+ca a=0 || b=0 !(a0 b0) (a0b=0)||(a=0b0)||(a=0b=0) ab bc * 位运算 有兴趣自学 不要求 * 条件运算符和条件表达式 条件运算符:? : 条件表达式的一般形式 表达式1 ? 表达式2 : 表达式3 例如:mn ? x : a+3 a++=10 b--20 ? a : b x=3+a5 ? 100 : 200 C语言中唯一的三目运算符,要正确区分用 ?和 :分隔的表达式 涉及条件运算符的优先级与结合性 * 条件运算符优先级 条件运算符优先级高于赋值、逗号运算符,低于其他运算符 例如: ⑴ mn ? x : a+3 ⑵ a++=10 b--20 ? a : b ⑶ x=3+a5 ? 100 : 200 等价于:(mn) ?(x) :(a+3) 等价于:(a++=10 b--20) ? a : b 等价于:x= (( 3+a5 ) ? 100 : 200 ) * 条件运算符的结合性 条件运算符具有右结合性 当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。 例如:wx ? x+w : xy ? x : y 与 wx ? x+w : ( xy ? x : y) 等价 与 (wx ? x+w : xy) ? x : y 不等价 * 逗号表达式运算 逗号表达式的一般形式 表达式1,表达式2,……,表达式n 逗号表达式的值 从左向右,依次对表达式求值,最后得到表达式n 的值就是逗号表达式的值 例如:⑴ a=5, a++, a* 3 表达式值为 18,且a=6 ⑵ t=1, t+5, t++ 表达式值为 1,且t=2 ⑶ x=(a=3*5, a*4 ) 赋值表达式的值为60,且x=60, a=15 最低 优先级 只有赋值运算 才能改变变量 的值 * 取地址运算符 为单目运算符 运算对象只能是变量 运算结果是变量的存储地址 例如有定义: int a , student; char ch; 可以对变量a、ch、student 进行运算: a ch student scanf(“%d,%d”,a,student); * 长度运算符 sizeof 为单目运算符 运算对象只能是变量名或数据类型标识符

文档评论(0)

1亿VIP精品文档

相关文档