C语言3C语言3.ppt
文本预览下载声明
第二章 数据类型、运算符和表达式 2.3 基本运算符及其表达式 2.3 基本运算符及其表达式 由常量、变量、函数按C语法规则用运算符连接起来的式子称为表达式。 单个的常量、变量、函数调用是表达式的特例。 表达式有一个值,即运算结果。 表达式求值按运算符的优先级和结合性规定的顺序进行。 优先级高的先运算;优先级相同时,按结合性规定的方向处理。 结合性的示例表达式: 3+5-4(左)x=y=8(右) 2.3 基本运算符及其表达式 2.3 基本运算符及其表达式 2.3 基本运算符及其表达式 2.3 基本运算符及其表达式 ?在表达式中当多个运算符相连时,应自左而右地将若干个字符组成一个运算符。 2.3 基本运算符及其表达式 3 算术表达式 ──由算术运算符和括号将运算对象(如常量、变量、函数等)连接起来的式子。 增例: 读程 main() { int i, k ; i=3; k=i+++i+++i++; printf(1) k=%d\ti=%d\n, k,i); i=3; k = (++i)+(++i)+(++i) ; printf(2) k=%d\ti=%d\n, k,i); } 2.3.3 逻辑运算符与逻辑表达式 关系表达式只能表达一些简单的关系,如: sum=1500 y!=z 即只能对一个条件进行测试。 ?赋值运算符优先级为14,仅高于逗号运算符,而低于其他所有运算符。 赋值运算的自动类型转换规则(右边类型转换为左边类型): 2.复合赋值运算符和复合赋值表达式 增例: 读程 main( ) { int a, b, c; a=b=c=5; a=(b=4)+(c=6); printf(”a=%d, b=%d, c=%d\n”,a,b,c); a+=b+c; printf(”a=%d, b=%d, c=%d\n”,a,b,c); a+=a-=a*=a; printf(”a=%d\n”,a); } 例子1:a=3*5, a*4 整个逗号表达式的值为? 例子2:a=3*5, a*4, a+5 整个逗号表达式的值为? 例子3:比较 x=(a=3,6*a) 和 x=a=3,6*a 本章小结 1. 位运算符 C语言中共有六种位运算符: (按位与) |(按位或) ^(按位异或) ~(按位求反) (按位左移) (按位右移) 其中: 求反(~)是单目运算符,且为右结合性,其他都是双目运算符,且为左结合性。位运算对象一般是整型(int)或者字符型(char)数据。 按位逻辑运算符 运算符: 按位与 按位或| 按位异或^ 按位求反~ 运算规则: 位移位运算符 * * * Program Design in C Language Page * 基本运算符及其表达式 第三讲 本节 介绍 算术运算符 赋值运算符 逗号运算符 逻辑运算符 条件运算符 求字节运算符 位逻辑运算符 位移动运算符 位自反运算符 强制类型转换运算符 指针运算符 下标运算符 分量运算符 基本运算符 位运算符 特殊运算符 C运算符 关系运算符 2.3.1 算术运算符与算术表达式 1.基本算术运算符 右结合 2 + 正 右结合 2 - 负 左结合 3 / 除 左结合 3 % 取模 3 4 4 优先级 左结合 * 乘 左结合 - 减 左结合 + 加 结合性 运算符 含义 例: 19/5 结果为3 (整数相除截去余数。) 22%4 结果为2 (取模运算返回余数。) 22%(3+4)结果为1(圆括号的优先级为1) %取模运算的两个操作数必须是整型量! 增例1: 读程 main ( ) { int c1, c2 ; c1=-7/3; c2=-7%3; printf( c1=%d\tc2=%d\n, c1, c2 ); c1=3/-7; c2=3%-7; printf( c1=%d\tc2=%d\n, c1, c2 ); c1=7/-3; c2=7%-3; printf( c1=%d\tc2=%d\n, c1, c2 ); } 程序运行输出: c1=-2 c2=-1 c1=0 c2=3 c1=-2 c2=1 有符号除法: ?注: 余数和被除数的符号必须相同 ?注: 如果除数和被除数的符号不同, 商为负 2.自增自减运算符 ? i++或i-- 变量i先参与运算,再自增或自减1。 ? ++i或--i 变量i先自增或自减1,再参与运算。 使用形式
显示全部