- 2
- 0
- 约1.53千字
- 约 10页
- 2016-11-27 发布于河南
- 举报
C语言程序6
C程序设计第五讲 计算中心 王红涛 Email:teacher_wht@126.com 位运算 运算符为~、、^、| ,它们的优先级依次降低 “取反”~(P301,移植性问题) “按位与” 用于对某些位清零,保留某些位(相应清零位置0,其它位置1) “按位异或”^ 用于翻转某些位,保留某些位(相应翻转位置1,其它位置0) a^a=0 不用临时变量交换两个值(P300) “按位或”| 用于对某些位置1,保留某些位(相应置1位置1,其它位置0) 赋值运算及逗号表达式 赋值运算 运算符为=、*=、/=、%=、+=、-=、=、^=、|=、=、= 这些运算符的优先级一样,是右结合的。 a op=b,相当于执行 a=a op (b) 可以串连赋值 逗号表达式 运算符为“,”,由逗号来连接若干个表达式,其中最后一个表达式的值为整个逗号表达式的值 例如:a=5;那么a=3*5,a*4这个表达式的值是? 条件运算符(右结合的) 表达式1?表达式2:表达式3 左值及右值 左值(Lvalue):一个左值就是一个能表示内存单位的表达式。例如:*P就是一个左值表达式。简单讲就是指能放在赋值号左边的表达式。 右值(Rvalue):简单讲就是能放在赋值号后面的表达式,如:a+b 类型转换 各类型数值数据间的混合运算(精度低的向精度高的转换P54) 强制类型转换(P56) (类型名)表达式 赋值时的数据转换(按存储单元的存储形式直接传送P59) 实型赋给整型:舍弃小数部分 整型赋给实型:值不变,以浮点形式保存 double 赋给float,损失精度 float 赋给double,扩展精度 其它情况: 位窄的赋给位宽的,分为有符号和无符号两种情况:有符号扩展符号,无符号扩展0; 位宽的赋给位窄的,只取低位 表达式使用中的问题(P58) 三种基本结构的C语言形式 顺序结构 选择结构 if (表达式) 语句;(表达式值为非零,执行语句) if (表达式) 语句1; else 语句2; (表达式值为非零,执行语句1,为零执行,语句2) 注意:if…else之间的语句必须是一条语句; switch (表达式) 语句;(表达式的结果值必须是可数的) 循环结构 while (表达式) 循环体;( 只要表达式值为非零,执行循环体) do 语句 while (表达式); ( 只要表达式值为非零,执行循环体) 它们的区别在于,前者的循环体可能一次也不执行,后者的循环体至少执行一次。 for ([表达式1];[表达式2];[表达式3])循环体; if 语句 if 语句的嵌套(两种形式) if ( ) if ( ) 语句1 else 语句2 else if ( ) 语句3 else 语句4 if ( ) {if( ) 语句1} else if( ) 语句2 else 语句3 switch 语句 格式 switch(表达式) { case 表达式1:语句1 case 表达式2:语句2 … case 表达式n:语句n default:语句n+1 } 执行流程 break 循环语句 while 语句 do while 语句 for 语句 执行流程 break continue * * double float long unsigned int char,short 计算表达式1 计算表达式3 语句1 判断表达式2 语句2 语句3 判断条件 判断条件 break; continue; 假 假 假 真 真 真
原创力文档

文档评论(0)